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 <<
" ";