private AsyncReaderWriterLock CreateLeasedLock(TKey key) { if (!_pool.TryTake(out AsyncReaderWriterLock? asyncLock)) { asyncLock = new AsyncReaderWriterLock(); } asyncLock.OnRelease = () => _activeLocks.Release(key); return(asyncLock); }
internal Releaser(AsyncReaderWriterLock toRelease, bool writer) { _toRelease = toRelease; _writer = writer; }