kpreisser / AsyncReaderWriterLockSlim

An async-ready alternative to .NET's ReaderWriterLockSlim.
MIT License
24 stars 7 forks source link

Nuget Package? #1

Open markusschaber opened 5 years ago

markusschaber commented 5 years ago

Hi,

Would you mind to provide a NuGet package?

Thanks for your great work!

kpreisser commented 5 years ago

Hi @markusschaber, thanks for logging this issue! I will try to create a NuGet packet for this project in the near future.

By the way, may I ask how you found this project and for what scenario you are using the async lock? Thanks!

markusschaber commented 5 years ago

I found this project while searching for async readerWriterLock alternatives for .NET Core... :-)

As far as I remember, it even was in the discussion of the AsyncEx bug reports where I found the pointer to your project...

We're currently using AsyncEx library (but only the ReaderWriterLockSlim implementation), and I found the bug report there about the almost-deadlocks with MinThreads... We also had that problem in one of our usecases, and solved it by increasing MinThreads on the Thread pool. We did not switch over to your implementation yet, due to the lack of NuGet packages.

Do describe the scenario: We're currently working on a server application, and we have one microservice which is responsible for communication with devices ("Programmable Logic Controllers"). In that microservice, I use RW-Locking for the meta data structures, as most accesses are read-only (it's rather rare that new devices appear or old devices are removed, compared to the Lookup itself...)

msvprogs commented 5 years ago

I would like to have NuGet package too. I'm using it for a certain HTTP server, which is restarted and reconfigured occasionally, so I need to read-lock all HTTP requests and write-lock the restart procedure.

Also, it would be great to be able to restrict concurrent readers count (HTTP server handles at most 16 concurrent connections). I'm using the separate SemaphoreSlim for this task now.

osexpert commented 5 months ago

I can make a nuget. But under what name? Maybe just "AsyncReaderWriterLockSlim"? Or should i use the name "KPreisser.AsyncReaderWriterLockSlim"?

Done: https://www.nuget.org/packages/AsyncReaderWriterLockSlim