#include "shm_queue_wrapper.h"
|
#include "mm.h"
|
|
// typedef struct message_t
|
// {
|
// char method[20];
|
// int code;
|
|
// } message_t;
|
|
void test1() {
|
unsigned int i = 0;
|
int key = 1;
|
|
size_t qsize = 16;
|
void * queue = shmqueue_create( &key, qsize);
|
//message_t item;
|
char msg[100];
|
void *rtmsg;
|
int size;
|
|
for(i = 0; i < qsize; i++) {
|
sprintf(msg, "%d hello", i);
|
//入队
|
if(shmqueue_push(queue, (void *)msg, sizeof(msg))) {
|
printf("push: %s\n", msg );
|
}
|
}
|
printf("key == %d\n", key);
|
// struct timespec timeout = {1, 0};
|
// int keys[] = {1,2};
|
// shm_remove_queues_exclue((void *)keys, 1);
|
i = 0;
|
// 出队
|
while((shmqueue_pop_timeout(queue, &rtmsg, &size, 1, 0)) ) {
|
printf("pop: %s\n", (char *)rtmsg );
|
free(rtmsg);
|
// cout << item.pic << endl;
|
i++;
|
}
|
|
//销毁队列
|
shmqueue_drop(queue);
|
}
|
|
|
int main () {
|
shm_mm_wrapper_init(512);
|
test1();
|
|
//整个进程退出时需要执行这个方法,该方法首先会检查是否还有其他进程在使用该共享内存,如果还有其他进程在使用就只是detach,如果没有其他进程在使用则销毁整块内存。
|
shm_mm_wrapper_destroy();
|
return 0;
|
}
|