From 3feff4ae44fd74c32158ed5f505e063b154c4d76 Mon Sep 17 00:00:00 2001 From: wangzhengquan <wangzhengquan85@126.com> Date: 星期四, 16 七月 2020 11:43:34 +0800 Subject: [PATCH] udpate --- test/single_consumer.c | 40 ++++++++++++++++++++++++---------------- 1 files changed, 24 insertions(+), 16 deletions(-) diff --git a/test/single_consumer.c b/test/single_consumer.c index a834d86..6bbd540 100644 --- a/test/single_consumer.c +++ b/test/single_consumer.c @@ -2,33 +2,41 @@ using namespace std; - - +int key = 1; +bool stop = false; void sigint_handler(int sig) { - destroy(); - exit(0); + + stop = true; } + int main(int argc, char *argv[]) { - - void *shmp; + 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); - SLinkedLockFreeQueue<struct Item> *queue = QFactory::createLinkedLockFreeQueue<struct Item> (1, 10); + + mm_init(512); + + // SHMQueue<struct Item, 3> *queue = new SHMQueue<struct Item, 3>(qsize); + SHMQueue<item_t> *queue = new SHMQueue<item_t>(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->remove(item)) { - - cout << item.pic << endl; + struct timespec timeout = {5, 0}; + item_t item; + while(!stop && queue->pop_timeout(item, &timeout)) { + //cout << "鍑洪槦锛�" << item << endl; + LoggerFactory::getLogger().error("%d", item); + //err_msg(0, "%d", item); + //cout << item.pic << endl; //sleep(1); } - destroy(); - cerr << "consumer quit" << endl; + //delete queue; + //mm_destroy(); + err_msg(0, "consumer quit"); exit(EXIT_SUCCESS); } -- Gitblit v1.8.0