Open devgs opened 8 years ago
Per my understanding this was done for reducing (limiting) the number of mutexes (OS resources like non-paged pool) used by strands. I'm still looking for a lock-free strand. It could be LIFO or FIFO - I personally don't care about (don't need predictable) order of execution of handlers (which go through strand) and need just non-concurrent execution which won't consume too much of OS resources.
Can you please explain why the number of mutexes, used by strands must be limited?
This strategy leads to terrible consequences, when your application has two features:
Why not just use mutex pooling/recycling?
Here is a test case that shows the issue:
Test run in a usual way:
Test run with a long blocking work: