Skip to content

Releases: neosmart/AsyncLock

AsyncLock 3.3.0-preview1

24 Feb 21:22
Compare
Choose a tag to compare
Pre-release

This release of AsyncLock

  • addresses a potential deadlock when attempting to recursively acquire the lock in back-to-back scenarios (#18)
  • allows work to internally continue on different threads after explicit context switching points (#17, #19)
  • addresses a lock corruption issue when using TryLockAsync() with a timeout of TimeSpan.Zero
  • reworks some lock acquisition internals to ensure locks are acquired in a more timely fashion after racing with Dispose() calls in another thread

Download on Nuget.org: https://www.nuget.org/packages/NeoSmart.AsyncLock/3.3.0-preview1

Or install manually:

Install-Package NeoSmart.AsyncLock -Version 3.3.0-preview1

AsyncLock 3.2.1

10 Jan 21:51
Compare
Choose a tag to compare

This point release adds strong name signing and bundles the README as part of the nuget package, making it viewable on nuget.org

Download on Nuget.org: https://www.nuget.org/packages/NeoSmart.AsyncLock/

Or install manually:

Install-Package NeoSmart.AsyncLock -Version 3.2.1

NeoSmart.AsyncLock 3.2.0

15 Dec 21:35
Compare
Choose a tag to compare

This update brings a highly requested feature: the ability to to atomically attempt to obtain a lock or return early otherwise. The new interface is available as .TryLock() and .TryLockAsync() for both synchronous and asynchronous usage. The API is resistant to misuse by executing the critical path in a closure w/ the lock obtained, so there's no need to worry about sometimes disposing the returned lock and sometimes not.

A pull request from first-time contributor Caleb Frederickson (@Stroniax) adds the ability to use a CancellationToken to time out synchronous requests (previously a CancellationToken parameter was only accepted for the asynchronous locking methods).


The updated package has been published to NuGet as NeoSmart.AsyncLock and may be installed as with any other package; for Visual Studio users that would look like this:

Install-Package NeoSmart.AsyncLock -Version 3.2.0