static inline int write_buff(kn_msgque_writer_t writer,struct msg *msg){ //先写入本线程缓存 int ret = 0; kn_list_pushback(&writer->writebuff,(kn_list_node*)msg); if(kn_list_size(&writer->writebuff) >= writer->buffsize){ ret = msgque_flush(writer); } return ret; }
void *Routine3(void *arg) { msgque_open_write(mq1); for(;;){ int j = 0; for(; j < 5;++j) { int i = 0; for(; i < 10000000; ++i) { msgque_put(mq1,&node_list3[j][i]); } msgque_flush(); sleepms(200); } } printf("Routine3 end\n"); return NULL; }
int kn_msgque_flush(kn_msgque_writer_t writer){ return msgque_flush(writer); }