Ejemplo n.º 1
0
        internal HandleContext(
            IntPtr loopHandle,
            Uv_handle_type handleType)
        {
            int    handleSize    = Native.uv_handle_size(handleType).ToInt32();
            IntPtr handlePointer = Marshal.AllocCoTaskMem(handleSize);

            try
            {
                int result = Native.uv_timer_init(loopHandle, handlePointer);
                Native.CheckIfError(result);
            }
            catch
            {
                Marshal.FreeCoTaskMem(handlePointer);
                throw;
            }

            GCHandle gcHandle = GCHandle.Alloc(this);

            ((Uv_handle_t *)handlePointer)->data = GCHandle.ToIntPtr(gcHandle);

            HandlePointer = handlePointer;
        }
Ejemplo n.º 2
0
 internal static extern IntPtr uv_handle_size(Uv_handle_type handleType);