[IO] make the lock implementation protecting a IoContext's cq configurable 
Compare changes
+ 20
− 2
@@ -18,10 +18,28 @@
@@ -40,7 +58,7 @@ class IoContext : public Logger<LogSubsystem::IO> {
This change introduces a new synchronization primitive "PseudoCountingTryLock" which takes an actual lock as template and provides a CountingTryLock interface. By using a PseudoCountingTryLock we don't have to change any synchronization code in IoContext::reapCompletion.
Since all PseudoCountingTryLock code is defined in a header the compiler should see our constant return values and hopefully optimize away any check depending on those constant return values.
Options:
Closes !123 (closed).