#include "test.h" using namespace std; int key = 1; bool stop = false; void sigint_handler(int sig) { printf("sigint_handler\n"); stop = true; } int main(int argc, char *argv[]) { string line; signal(SIGINT, sigint_handler); int qsize = 16; /* Create set containing two semaphores; initialize so that writer has first access to shared memory. */ int start = 0; int end = -1; if (argc == 3) { start = atoi(argv[1]); end = atoi(argv[2]); } mm_init(512); //LockFreeQueue *queue = QueueFactory::createQueue (key, qsize); SHMQueue *queue = new SHMQueue(key, qsize); /* Transfer blocks of data from stdin to shared memory */ //item_t item; //char item[1024]; item_t item; struct timespec timeout = {10, 0}; int i = start; // item.pic = i; // item.info = i; while(!stop && (end == -1 || (i < end) ) ) { //while(!stop ) { // item.pic = i; // item.info = i; //item = i + " aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"; //sprintf(item, "(%d)aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", i); if(queue->push(i)) //cout << "入队:" << item << endl; LoggerFactory::getLogger().error("%d", i); // err_msg(0, "%d", i); else { break; } // cout << item.pic << endl; i++; } //delete queue; //mm_destroy(); err_msg(0, "productor quit"); exit(EXIT_SUCCESS); }