public override int Wait(IntPtr[] waitHandles, bool waitAll, int millisecondsTimeout) { t_recursionCount++; try { if (t_recursionCount == 1 && Thread.CurrentThread.IsThreadPoolThread) { _logger.BlockingMethodCalled(new StackTrace(2)); } if (_syncCtx != null) { return(_syncCtx.Wait(waitHandles, waitAll, millisecondsTimeout)); } else { return(base.Wait(waitHandles, waitAll, millisecondsTimeout)); } } finally { t_recursionCount--; } }
private void SignalWaitHandleCompletion(object state) { // We do not care whether this throws, because there really isn't a // fallback action to take. SEH.SinkExceptions(() => _synchronizationContext.Wait((IntPtr[])state, false, -1)); SEH.SinkExceptions(() => BeginInvoke(new Action(Dispose))); }
private int WaitInternal(IntPtr[] waitHandles, bool waitAll, int millisecondsTimeout) { if (_syncCtx != null) { return(_syncCtx.Wait(waitHandles, waitAll, millisecondsTimeout)); } return(base.Wait(waitHandles, waitAll, millisecondsTimeout)); }
private static int InvokeWaitMethodHelper( SynchronizationContext syncContext, IntPtr[] waitHandles, bool waitAll, int millisecondsTimeout ) { return(syncContext.Wait(waitHandles, waitAll, millisecondsTimeout)); }
private bool WaitForHandles(IntPtr[] waitHandles, ref int delay, int wait) { if (delay <= 0) { return(false); } int result = _synchronizationContext.Wait(waitHandles, false, Math.Min(delay, wait)); if (result >= 0 && result < waitHandles.Length) { return(true); } delay -= wait; return(false); }
public override int Wait(IntPtr[] waitHandles, bool waitAll, int millisecondsTimeout) { _monitor.BlockingStart(DectectionSource.SynchronizationContext); try { if (_syncCtx != null) { return(_syncCtx.Wait(waitHandles, waitAll, millisecondsTimeout)); } else { return(base.Wait(waitHandles, waitAll, millisecondsTimeout)); } } finally { _monitor.BlockingEnd(); } }
public override int Wait(IntPtr[] waitHandles, bool waitAll, int millisecondsTimeout) { return(inner.Wait(waitHandles, waitAll, millisecondsTimeout)); }
public sealed override int Wait(IntPtr[] waitHandles, bool waitAll, int millisecondsTimeout) { return(m_passThroughSyncContext != null? m_passThroughSyncContext.Wait(waitHandles, waitAll, millisecondsTimeout) : base.Wait(waitHandles, waitAll, millisecondsTimeout)); }