private void CancelAcquireWrite(long id) { lock (syncRoot) { IOptional <WaitingWrite> opt = waitingWrites.Cancel(id); if (opt.HasValue) { opt.Value.k.PostResult(new AcquireWriteCancelled()); if (opt.Value.ctr.HasValue) { opt.Value.ctr.Value.PostDispose(); } } } }
private void CancelWait(long id) { lock (syncRoot) { Option <Waiter> opt = waiters.Cancel(id); if (opt.HasValue) { opt.Value.k.PostException(new OperationCanceledException(opt.Value.ctoken)); if (opt.Value.ctr.HasValue) { opt.Value.ctr.Value.Dispose(); } } } }
private void CancelWorkItem(long id) { lock (syncRoot) { Optional <WaitingWorkItem> opt = waitingWorkItems.Cancel(id); if (opt.HasValue) { opt.Value.k.PostException(new OperationCanceledException(opt.Value.ctoken)); if (opt.Value.ctr.HasValue) { opt.Value.ctr.Value.PostDispose(); } } } }
private void CancelAcquireRead(long id) { lock (syncRoot) { Option <WaitingRead> opt = waitingReads.Cancel(id); if (opt.HasValue) { opt.Value.k.PostResult(new AcquireReadCancelled()); if (opt.Value.ctr.HasValue) { opt.Value.ctr.Value.PostDispose(); } } } }