From a5061fa634af1e7011182e1c115151dd96af8393 Mon Sep 17 00:00:00 2001 From: "Luke T. Shumaker" Date: Wed, 16 Apr 2025 05:21:31 -0600 Subject: lib9p_srv: Re-think flush semantics --- libcr_ipc/chan.c | 2 ++ 1 file changed, 2 insertions(+) (limited to 'libcr_ipc/chan.c') diff --git a/libcr_ipc/chan.c b/libcr_ipc/chan.c index 7708fe4..b7ecfc8 100644 --- a/libcr_ipc/chan.c +++ b/libcr_ipc/chan.c @@ -100,6 +100,7 @@ size_t cr_select_v(size_t arg_cnt, struct _cr_select_arg_list_node arg_vec[]) { } struct _cr_select_waiter *waiter = other->waiter; for (size_t i = 0; i < waiter->arg_cnt; i++) { + waiter->arg_vec[i].val.ch->nwaiters--; dlist_remove(&waiter->arg_vec[i].val.ch->waiters, &waiter->arg_vec[i]); if (&waiter->arg_vec[i].val == other) waiter->ret = i; @@ -125,6 +126,7 @@ size_t cr_select_v(size_t arg_cnt, struct _cr_select_arg_list_node arg_vec[]) { }; for (size_t i = 0; i < arg_cnt; i++) { arg_vec[i].val.waiter = &waiter; + arg_vec[i].val.ch->nwaiters++; dlist_push_to_rear(&arg_vec[i].val.ch->waiters, &arg_vec[i]); } cr_pause_and_yield(); -- cgit v1.2.3-2-g168b