disruptor是一个java的并发编程框架,不了解的可参考:http://www.oschina.net/p/disruptor
在理解了disruptor的原理之后,然后参考一个开源的disruptor for c(https://github.com/colding/disruptorC)后写了一个disruptor库,通过该库可以更容易地使用这个框架。
头文件disruptor.h:
#ifndef DISRUPTOR_H
#define DISRUPTOR_H
struct disruptor;
struct disruptor_config
{
unsigned int reader_count;
unsigned int ele_size;
/* element count must be a power of 2 */
unsigned long ele_cnt;
};
struct disruptor*
disruptor_create(struct disruptor_config* cfg);
/* return reader id */
unsigned int
disruptor_add_reader(struct disruptor* dis);
void
disruptor_del_reader(struct disruptor* dis, unsigned int reader_id);
void
disruptor_read(struct disruptor* dis, unsigned int reader_id, void* dst);
void
disruptor_write(struct disruptor* dis, void* src);
void
disruptor_destroy(struct disruptor* dis);
#endif