1 #include "../waitQueues.h" 
   10   std::this_thread::sleep_for(std::chrono::milliseconds(i*100));
 
   11   std::cout << 
"start worker " << i << std::endl;
 
   12   while (
auto item = oq.
dequeue()) {
 
   14     std::this_thread::sleep_for(std::chrono::seconds(1));
 
   16   std::cout << 
"stop worker " << i << std::endl;
 
   19 int main(
int argc, 
const char*argv[]) {
 
   20   std::cout << argv[0] << 
"\n";
 
   24   std::vector<std::thread> workers;
 
   25   for (
auto i=argc; i ; --i) {
 
   26     workers.emplace_back(
o2s, i, std::ref(sq), std::ref(oq));
 
   31   for (
int i=0; i<20; i++) {
 
   33     std::cout << 
"enqueue " << i << std::endl;
 
   39   std::cout << 
"start dequeing" << std::endl;
 
   40   while (
auto item=sq.
dequeue()) {
 
   41     std::cout << *item << 
" ";