X-Git-Url: http://git.liburcu.org/?a=blobdiff_plain;f=libtracing%2Frelay.h;h=cd3baae3f3d180c81dcc585e8d89c1c89e3772e6;hb=3a7b90de71f2a82f73f06fb14a7b77805aea1064;hp=6cfcb077578ac20c42fc07a2a3eeb524402e22f9;hpb=46ef48cdf8b64608a4f679500bc34293b9f0b649;p=ust.git diff --git a/libtracing/relay.h b/libtracing/relay.h index 6cfcb07..cd3baae 100644 --- a/libtracing/relay.h +++ b/libtracing/relay.h @@ -345,10 +345,14 @@ struct ltt_channel_buf_struct { //ust// * writers //ust// */ //ust// atomic_t wakeup_readers; /* Boolean : wakeup readers waiting ? */ - /* whether or not wake_consumer must be called; must be accessed atomically */ - int call_wake_consumer; - /* the arg to pass to wake_consumer; must be accessed atomically */ - void *wake_consumer_arg; + /* one byte is written to this pipe when data is available, in order + to wake the consumer */ + /* portability: Single byte writes must be as quick as possible. The kernel-side + buffer must be large enough so the writer doesn't block. From the pipe(7) + man page: Since linux 2.6.11, the pipe capacity is 65536 bytes. */ + int data_ready_fd_write; + /* the reading end of the pipe */ + int data_ready_fd_read; } ____cacheline_aligned; int ltt_do_get_subbuf(struct rchan_buf *buf, struct ltt_channel_buf_struct *ltt_buf, long *pconsumed_old);