#include //std::system #include #include #include using namespace boost::interprocess; typedef allocator ShmemAllocator; typedef boost::lockfree::spsc_queue > queue; int main (int argc, char *argv[]) { struct shm_remove { shm_remove() { shared_memory_object::remove("spsc_queue_interprocess_shm"); } ~shm_remove(){ shared_memory_object::remove("spsc_queue_interprocess_shm"); } } remover; managed_shared_memory segment(create_only, "spsc_queue_interprocess_shm", 10000); ShmemAllocator alloc_inst(segment.get_segment_manager()); queue* q = segment.construct("queue")(1000, alloc_inst); int i = 2; q->push(i); q->pop(i); fprintf(stdout, "i: %d\n", i); segment.destroy("queue"); return 0; }