-
Type:
Task
-
Resolution: Unresolved
-
Priority:
Major - P3
-
None
-
Affects Version/s: None
-
Component/s: None
-
StorEng - Refinement Pipeline
-
None
WiredTiger has its own implementation of "condition variable". However, the guarantee it provides is different to the definition of the standard condition variable.
The rules for a standard condition variables are that all operations are as-if atomic, so a wait cannot see a notification that came before. In other words, a condition variable guarantees that earlier notifications don't wake later waiters While in our implementation, an earlier notification will wake a later waiter.
This creates confusion.
We can either rename our condition variable or explore whether we can use the standard implementation instead.