The condition variable employed by a
      mutex's trylock() is
      an internal condition variable.
      A separate object provides condition variable-like semantics:
    
#include <x/mutex.H> #include <x/mlock.H> #include <x/cond.H> x::mlock lock=m->lock(); x::cond c=x::cond::create(); // ... c->wait(lock); // ... c->notify_all();
      x::cond
      is a
      reference-counted
      object that provides
      std::condition_variable-like semantics for
      mutexes.
      like the mutex object does. It also has an overloaded
      wait() that takes a second parameter that specifies
      an optional expiration time.
      It implements notify() and
      notify_all() which are analogous to its
      thin, non-reference counted cousin.