From 9e6ceaad059b2aec84df92c8750f6d87eab708c2 Mon Sep 17 00:00:00 2001
From: wangzhengquan <wangzhengquan85@126.com>
Date: 星期四, 16 七月 2020 20:46:31 +0800
Subject: [PATCH] udpate
---
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