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/single_consumer.c | 23 +++++++++++++---------- 1 files changed, 13 insertions(+), 10 deletions(-) diff --git a/test/single_consumer.c b/test/single_consumer.c index bfd45c1..29ae0bc 100644 --- a/test/single_consumer.c +++ b/test/single_consumer.c @@ -3,33 +3,36 @@ int key = 1; - +bool stop = false; void sigint_handler(int sig) { - destroy(key); - exit(0); + + stop = true; } + int main(int argc, char *argv[]) { int qsize = 16; signal(SIGINT, sigint_handler); - /* Get IDs for semaphore set and shared memory created by writer */ - //SAbstractQueue<struct Item> *queue = QFactory::createQueue<struct Item> (1, 10); - LockFreeQueue<struct Item> *queue = QueueFactory::createQueue<struct Item> (key, qsize); + // SHMQueue<struct Item, 3> *queue = new SHMQueue<struct Item, 3>(qsize); + SHMQueue<struct Item> *queue = new SHMQueue<struct Item>(key, qsize); + + //LockFreeQueue<struct Item> *queue = QueueFactory::createQueue<struct Item> (key, qsize); /* Transfer blocks of data from shared memory to stdout */ struct timespec timeout = {10, 0}; struct Item item; - while(queue->pop(item)) { - - cout << item.pic << endl; + while(!stop && queue->pop(item)) { + cout << "鍑洪槦锛�" << item.pic << ", " << item.info << endl; + //cout << item.pic << endl; //sleep(1); } - destroy(key); + delete queue; + mm_destroy(); cerr << "consumer quit" << endl; exit(EXIT_SUCCESS); } -- Gitblit v1.8.0