| | |
| | | int key = 2; |
| | | |
| | | size_t qsize = 16; |
| | | shmqueue_t queue; |
| | | shmqueue_init(&queue, key, qsize, sizeof(message_t)); |
| | | void * queue = shmqueue_init( key, qsize, sizeof(message_t)); |
| | | message_t item; |
| | | // LockFreeQueue<struct Item> queue(16); |
| | | for(i = 0; i < qsize; i++) { |
| | | sprintf(item.method, "hello"); |
| | | item.code = i ; |
| | | if(shmqueue_push(&queue, (void *)&item)) { |
| | | if(shmqueue_push(queue, (void *)&item)) { |
| | | printf("push:%d %s\n", item.code, item.method ); |
| | | } |
| | | } |
| | |
| | | struct timespec timeout = {1, 0}; |
| | | |
| | | i = 0; |
| | | while((shmqueue_pop_timeout(&queue, (void *)&item, &timeout)) ) { |
| | | while((shmqueue_pop_timeout(queue, (void *)&item, &timeout)) ) { |
| | | printf("pop:%d %s\n", item.code, item.method ); |
| | | // cout << item.pic << endl; |
| | | i++; |
| | | } |
| | | |
| | | //销毁队列 |
| | | shmqueue_destroy(&queue); |
| | | shmqueue_destroy(queue); |
| | | } |
| | | |
| | | |