AsyncKeyedLock Versions Save

An asynchronous .NET Standard 2.0 library that allows you to lock based on a key (keyed semaphores), limiting concurrent threads sharing the same key to a specified number, with optional pooling for reducing memory allocations.

6.2.3

5 months ago

Allowed optional continueOnCapturedContext, defaulting to false. Contributed by @c0nd3v.

6.2.3-beta

5 months ago

Allowing optionally passing on continueOnCapturedContext. Contributed by c0nd3v

6.2.2

7 months ago

Fixed potential unnecessary slowdown.

6.2.1

1 year ago

Implemented IDisposable.

6.2.0

1 year ago

Created an alternate method for locking using striped locks. For a list of pros and cons of both techniques, please visit the wiki at https://github.com/MarkCiliaVincenti/AsyncKeyedLock/wiki

6.1.1

1 year ago
  • Enabled deterministic build allowing you to step into and debug the code.
  • Fixed an issue with PoolInitialFill being ignored.
  • Moved documentation to GitHub wiki.

6.1.0

1 year ago

Synchronous Lock methods with timeouts now must use the out parameter. Async LockAsync methods with timeouts now return AsyncKeyedLockTimeoutReleaser<TKey> instead of IDisposable. IsInUse correctness improved and will now wait on locks to allow concurrent operations to finish before reporting back.

6.0.5

1 year ago

Minor optimizations.

6.0.4

1 year ago

Optimizations and fixing of more rare race conditions.

6.0.3

1 year ago

Fixed rare race condition (thanks for pointing it out Theodor Zoulias), added limit to avoid unnecessary attempts to fill pool when initialFill > capacity.