|  | MySQL 9.5.0
    Source Code Documentation | 
A counter which tracks number of things left to do, which can be incremented or decremented, and lets one await the value drop to zero. More...
#include <ut0todo_counter.h>
| Public Member Functions | |
| Todo_counter () | |
| Initializes the counter to 0.  More... | |
| void | increment () | 
| Increments the value of the counter.  More... | |
| void | decrement () | 
| Decrements the value of the counter.  More... | |
| void | await_zero () | 
| Returns when the value is zero.  More... | |
| size_t | value () | 
| Returns current value of the counter.  More... | |
| Private Attributes | |
| size_t | m_todos {0} | 
| Os_event_t | m_is_zero {} | 
A counter which tracks number of things left to do, which can be incremented or decremented, and lets one await the value drop to zero.
Enforcing a total order on calls to increment(), decrement() and value() is a responsibility of a user of this class. With above assumption the await_zero() can be called safely at any moment, as increment() and decrement() take care of resetting and setting the awaited event object properly.
| 
 | inline | 
Initializes the counter to 0.
| 
 | inline | 
Returns when the value is zero.
| 
 | inline | 
Decrements the value of the counter.
| 
 | inline | 
Increments the value of the counter.
| 
 | inline | 
Returns current value of the counter.
| 
 | private | 
| 
 | private |