use ecplicit-operator-bool from boost
use fifo in condition and mutexes