public bool WaitSignaled(TimeSpan timeout, CancellationToken cancellationToken) { var waitResult = _semaphoreSlimSignalable.WaitSignaled(timeout, cancellationToken); _enteredSemaphore = waitResult == SemaphoreWaitResult.Entered; return(_enteredSemaphore); }
private Task <SemaphoreSlimSignalable.SemaphoreWaitResult>[] CreateWaitTasks( SemaphoreSlimSignalable semaphore, bool async, bool isSignaledWait, int threadsCount, TimeSpan timeout, CancellationToken cancellationToken = default) => async? TasksUtils.CreateTasks(threadsCount, _ => isSignaledWait?semaphore.WaitSignaledAsync(timeout, cancellationToken) : semaphore.WaitAsync(timeout, cancellationToken)) : TasksUtils.CreateTasksOnOwnThread(threadsCount, _ => isSignaledWait ? semaphore.WaitSignaled(timeout, cancellationToken) : semaphore.Wait(timeout, cancellationToken));