void eventfd_ctx_do_read(struct eventfd_ctx *ctx, __u64 *cnt); DECLARE_PER_CPU(int, eventfd_wake_count); @@ -82,6 +83,11 @@ static inline bool eventfd_signal_count(void) return false; } static inline void eventfd_ctx_do_read(struct eventfd_ctx *ctx, __u64 *cnt) { } #endif...
int eventfd_ctx_remove_wait_queue(struct eventfd_ctx *ctx, wait_queue_t *wait, __u64 *cnt) { unsigned long flags;spin_lock_irqsave(&ctx->wqh.lock, flags); eventfd_ctx_do_read(ctx, cnt); __remove_wait_queue(&ctx->wqh, wait); ...
eventfd_read(plugin->eventfd, &evfd);pthread_mutex_lock(&plugin->mutex); count = plugin->event_cnt; plugin->event_cnt = 0; pthread_mutex_unlock(&plugin->mutex); for (i = 0; i < count; ++i) { eventfd_read(plugin->eventfd, &evfd); ...