internal static void CompleteWait(RegisteredWaitHandle handle, bool timedOut) { if (PortableThreadPoolEventSource.Log.IsEnabled()) { PortableThreadPoolEventSource.Log.ThreadPoolIODequeue(handle); } handle.PerformCallback(timedOut); }
internal static void RegisteredWaitCallback(IntPtr instance, IntPtr context, IntPtr wait, uint waitResult) { var wrapper = ThreadPoolCallbackWrapper.Enter(); GCHandle handle = (GCHandle)context; RegisteredWaitHandle registeredWaitHandle = (RegisteredWaitHandle)handle.Target; Debug.Assert((handle == registeredWaitHandle._gcHandle) && (wait == registeredWaitHandle._tpWait)); bool timedOut = (waitResult == (uint)Interop.Kernel32.WAIT_TIMEOUT); registeredWaitHandle.PerformCallback(timedOut); ThreadPool.IncrementCompletedWorkItemCount(); wrapper.Exit(); }
internal static void RegisteredWaitCallback(IntPtr instance, IntPtr context, IntPtr wait, uint waitResult) { RuntimeThread.InitializeThreadPoolThread(); GCHandle handle = (GCHandle)context; RegisteredWaitHandle registeredWaitHandle = (RegisteredWaitHandle)handle.Target; Debug.Assert((handle == registeredWaitHandle._gcHandle) && (wait == registeredWaitHandle._tpWait)); bool timedOut = (waitResult == (uint)Interop.Constants.WaitTimeout); registeredWaitHandle.PerformCallback(timedOut); }