38 references to WaitSubsystem
System.Private.CoreLib (38)
src\libraries\System.Private.CoreLib\src\Microsoft\Win32\SafeHandles\SafeWaitHandle.Unix.cs (1)
12WaitSubsystem.DeleteHandle(handle);
src\libraries\System.Private.CoreLib\src\System\IO\SharedMemoryManager.Unix.cs (2)
743public WaitSubsystem.LockHolder AcquireCreationDeletionProcessLock() 745return new WaitSubsystem.LockHolder(_creationDeletionProcessLock);
src\libraries\System.Private.CoreLib\src\System\Threading\EventWaitHandle.Unix.cs (5)
16SafeWaitHandle = WaitSubsystem.NewEvent(initialState, mode); 34SafeWaitHandle = WaitSubsystem.NewEvent(initialState, mode); 52WaitSubsystem.ResetEvent(waitHandle.DangerousGetHandle()); 66WaitSubsystem.SetEvent(waitHandle.DangerousGetHandle()); 80WaitSubsystem.SetEvent(waitHandle.DangerousGetHandle());
src\libraries\System.Private.CoreLib\src\System\Threading\LowLevelLifoSemaphore.Unix.cs (4)
15private WaitSubsystem.WaitableObject _semaphore; 20_semaphore = WaitSubsystem.WaitableObject.NewSemaphore(0, maximumSignalCount); 29return WaitSubsystem.Wait(_semaphore, timeoutMs, false, true) == WaitHandle.WaitSuccess; 34WaitSubsystem.ReleaseSemaphore(_semaphore, count);
src\libraries\System.Private.CoreLib\src\System\Threading\Mutex.Unix.cs (5)
13private void CreateMutexCore(bool initiallyOwned) => SafeWaitHandle = WaitSubsystem.NewMutex(initiallyOwned); 25SafeWaitHandle? safeWaitHandle = WaitSubsystem.CreateNamedMutex(initiallyOwned, name, isUserScope: options.WasSpecified && options.CurrentUserOnly, out createdNew); 34SafeWaitHandle = WaitSubsystem.NewMutex(initiallyOwned); 47OpenExistingResult status = WaitSubsystem.OpenNamedMutex(name, isUserScope: options.WasSpecified && options.CurrentUserOnly, out SafeWaitHandle? safeWaitHandle); 81WaitSubsystem.ReleaseMutex(waitHandle.DangerousGetHandle());
src\libraries\System.Private.CoreLib\src\System\Threading\NamedMutex.Unix.cs (5)
47WaitSubsystem.LockHolder scope = SharedMemoryManager<NamedMutexProcessDataBase>.Instance.AcquireCreationDeletionProcessLock(); 99public MutexTryAcquireLockResult TryAcquireLock(WaitSubsystem.ThreadWaitInfo waitInfo, int timeoutMilliseconds, ref WaitSubsystem.LockHolder holder) 146WaitSubsystem.LockHolder scope = SharedMemoryManager<NamedMutexProcessDataBase>.Instance.AcquireCreationDeletionProcessLock(); 210WaitSubsystem.LockHolder creationDeletionProcessLock = SharedMemoryManager<NamedMutexProcessDataBase>.Instance.AcquireCreationDeletionProcessLock();
src\libraries\System.Private.CoreLib\src\System\Threading\Semaphore.Unix.cs (3)
16SafeWaitHandle = WaitSubsystem.NewSemaphore(initialCount, maximumCount); 34SafeWaitHandle = WaitSubsystem.NewSemaphore(initialCount, maximumCount); 60return WaitSubsystem.ReleaseSemaphore(waitHandle.DangerousGetHandle(), releaseCount);
src\libraries\System.Private.CoreLib\src\System\Threading\Thread.Unix.cs (3)
41private static void SleepInternal(int millisecondsTimeout) => WaitSubsystem.Sleep(millisecondsTimeout); 68return WaitSubsystem.Wait(waitHandle.DangerousGetHandle(), millisecondsTimeout, interruptible: false) == WaitHandle.WaitSuccess; 84WaitSubsystem.SetEvent(waitHandle.DangerousGetHandle());
src\libraries\System.Private.CoreLib\src\System\Threading\WaitHandle.Unix.cs (3)
11WaitSubsystem.Wait(handle, millisecondsTimeout, interruptible: !useTrivialWaits); 14WaitSubsystem.Wait(handles, waitAll, millisecondsTimeout); 17WaitSubsystem.SignalAndWait(handleToSignal, handleToWaitOn, millisecondsTimeout);
src\libraries\System.Private.CoreLib\src\System\Threading\WaitSubsystem.Unix.cs (1)
16/// <see cref="WaitSubsystem"/>
src\libraries\System.Private.CoreLib\src\System\Threading\WaitSubsystem.WaitableObject.Unix.cs (1)
12/// A synchronization object that can participate in <see cref="WaitSubsystem"/>'s wait operations.
src\System\Threading\Thread.CoreCLR.cs (5)
38internal WaitSubsystem.ThreadWaitInfo? _waitInfo; 438WaitSubsystem.Interrupt(this); 555internal WaitSubsystem.ThreadWaitInfo WaitInfo 561WaitSubsystem.ThreadWaitInfo AllocateWaitInfo() 563Interlocked.CompareExchange(ref _waitInfo, new WaitSubsystem.ThreadWaitInfo(this), null!);