diff options
Diffstat (limited to 'cppe/demo/IceE/workqueue/WorkQueue.cpp')
-rw-r--r-- | cppe/demo/IceE/workqueue/WorkQueue.cpp | 90 |
1 files changed, 45 insertions, 45 deletions
diff --git a/cppe/demo/IceE/workqueue/WorkQueue.cpp b/cppe/demo/IceE/workqueue/WorkQueue.cpp index 0a209127e08..1bf33a30efe 100644 --- a/cppe/demo/IceE/workqueue/WorkQueue.cpp +++ b/cppe/demo/IceE/workqueue/WorkQueue.cpp @@ -24,28 +24,28 @@ public: virtual void run() { - while(1) - { - string item = nextItem(); - if(item == "destroy") - { - break; - } + while(1) + { + string item = nextItem(); + if(item == "destroy") + { + break; + } - printf("work item: %s\n", item.c_str()); - IceUtil::ThreadControl::sleep(IceUtil::Time::seconds(1)); - } + printf("work item: %s\n", item.c_str()); + IceUtil::ThreadControl::sleep(IceUtil::Time::seconds(1)); + } } void add(const string& item) { - IceUtil::Monitor<IceUtil::Mutex>::Lock lock(_monitor); - if(_queue.empty()) - { - _monitor.notify(); - } - _queue.push_back(item); + IceUtil::Monitor<IceUtil::Mutex>::Lock lock(_monitor); + if(_queue.empty()) + { + _monitor.notify(); + } + _queue.push_back(item); } private: @@ -53,15 +53,15 @@ private: string nextItem() { - IceUtil::Monitor<IceUtil::Mutex>::Lock lock(_monitor); - while(_queue.empty()) - { - _monitor.wait(); - } - - string item = _queue.front(); - _queue.pop_front(); - return item; + IceUtil::Monitor<IceUtil::Mutex>::Lock lock(_monitor); + while(_queue.empty()) + { + _monitor.wait(); + } + + string item = _queue.front(); + _queue.pop_front(); + return item; } @@ -76,29 +76,29 @@ main() { try { - WorkQueuePtr h = new WorkQueue(); - IceUtil::ThreadControl control = h->start(); - printf("Pushing work items"); - printf("."); fflush(stdout); - h->add("item1"); - printf("."); fflush(stdout); - h->add("item2"); - printf("."); fflush(stdout); - h->add("item3"); - printf("."); fflush(stdout); - h->add("item4"); - printf("."); fflush(stdout); - h->add("item5"); - printf("."); fflush(stdout); - h->add("destroy"); - printf(" ok\n"); - printf("Waiting for WorkQueue to terminate\n"); - control.join(); + WorkQueuePtr h = new WorkQueue(); + IceUtil::ThreadControl control = h->start(); + printf("Pushing work items"); + printf("."); fflush(stdout); + h->add("item1"); + printf("."); fflush(stdout); + h->add("item2"); + printf("."); fflush(stdout); + h->add("item3"); + printf("."); fflush(stdout); + h->add("item4"); + printf("."); fflush(stdout); + h->add("item5"); + printf("."); fflush(stdout); + h->add("destroy"); + printf(" ok\n"); + printf("Waiting for WorkQueue to terminate\n"); + control.join(); } catch(const IceUtil::Exception& ex) { - fprintf(stderr, "%s\n", ex.toString().c_str()); - return EXIT_FAILURE; + fprintf(stderr, "%s\n", ex.toString().c_str()); + return EXIT_FAILURE; } return EXIT_SUCCESS; |