From 7d3086a481899b03c230eb06a29aa57677041725 Mon Sep 17 00:00:00 2001
From: wangzhengquan <wangzhengquan85@126.com>
Date: 星期三, 08 七月 2020 15:07:51 +0800
Subject: [PATCH] update

---
 test/multiple_queue_consumer.c |   14 +++++++-------
 1 files changed, 7 insertions(+), 7 deletions(-)

diff --git a/test/multiple_queue_consumer.c b/test/multiple_queue_consumer.c
index 7281e44..2e0338e 100644
--- a/test/multiple_queue_consumer.c
+++ b/test/multiple_queue_consumer.c
@@ -5,11 +5,9 @@
 #define NTHREADS 4 
 struct Targ targs[NTHREADS];
 size_t qsize = 16;
- 
+bool stop = false;
 void sigint_handler(int sig) {
-  mm_destroy();
-  exit(0);
-
+  stop = true;
 }
 
 
@@ -17,18 +15,21 @@
 void* run (void *arg) {
   struct Targ * targ = (struct Targ * )arg;
   // SArrayLockFreeQueue<struct Item> *queue = QFactory::createArrayLockFreeQueue<struct Item> (targ->key, 10);
-  LockFreeQueue<struct Item> *queue = QueueFactory::createQueue<struct Item> (targ->key, qsize);
+ // LockFreeQueue<struct Item> *queue = QueueFactory::createQueue<struct Item> (targ->key, qsize);
+  SHMQueue<struct Item> *queue = new SHMQueue<struct Item>(targ->key, qsize);
+  
   struct Item item;
   struct timespec timeout = {5, 0};
 
   int i = 0;
-  while((queue->pop_timeout(item, &timeout)) ) {
+  while(!stop && (queue->pop_timeout(item, &timeout)) ) {
     printf("consumer(%d) 鍑洪槦锛� {%d, %d}\n", targ->key, item.pic, item.info);
    // cout <<  item.pic << endl;
 
     i++;
     
   }
+  delete queue;
   return (void *)i;
 }
 
@@ -50,7 +51,6 @@
   for (i = 0; i< NTHREADS; i++) {
     targs[i].key = i;
     pthread_create(&tids[i], NULL, run, (void *)&targs[i]);
-    sleep(1);
   }
 
   for (i = 0; i< NTHREADS; i++) {

--
Gitblit v1.8.0