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