This class is designed for fans of POSIX pthreads programming.
If you restrict yourself to Mutexes and CondVars, you can
use most of your favorite constructions.
Sync objects isolate waiting and notification for particular
logical states, resource availability, events, and the like that are
shared across multiple threads.