private void CancelAcquireWrite(long id) { lock (syncRoot) { Option <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 CancelWorkItem(long id) { lock (syncRoot) { Option <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(); } } } }