From 0fa1c82bfc3c679c49df2e586183db1efbd8f62c Mon Sep 17 00:00:00 2001 From: Benoit Daloze Date: Mon, 21 Sep 2020 15:58:08 +0200 Subject: Make it clear the first field of join_arg is the waiting thread * And not some list of sort. --- thread.c | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/thread.c b/thread.c index 35a35f23f9..d6a4f7ab78 100644 --- a/thread.c +++ b/thread.c @@ -1119,7 +1119,7 @@ rb_thread_create_ractor(rb_ractor_t *g, VALUE args, VALUE proc) struct join_arg { - struct rb_waiting_list *waiting_list; + struct rb_waiting_list *waiter; rb_thread_t *target; VALUE timeout; }; @@ -1134,11 +1134,11 @@ remove_from_join_list(VALUE arg) struct rb_waiting_list **join_list = &target_thread->join_list; while (*join_list) { - if (*join_list == p->waiting_list) { + if (*join_list == p->waiter) { *join_list = (*join_list)->next; break; } - + join_list = &(*join_list)->next; } } @@ -1152,7 +1152,7 @@ static VALUE thread_join_sleep(VALUE arg) { struct join_arg *p = (struct join_arg *)arg; - rb_thread_t *target_th = p->target, *th = p->waiting_list->thread; + rb_thread_t *target_th = p->target, *th = p->waiter->thread; rb_hrtime_t end = 0, rel = 0, *limit = 0; /* @@ -1220,14 +1220,14 @@ thread_join(rb_thread_t *target_th, VALUE timeout) thread_id_str(target_th), thread_status_name(target_th, TRUE)); if (target_th->status != THREAD_KILLED) { - struct rb_waiting_list waiting_list; - waiting_list.next = target_th->join_list; - waiting_list.thread = th; - waiting_list.fiber = fiber; - target_th->join_list = &waiting_list; + struct rb_waiting_list waiter; + waiter.next = target_th->join_list; + waiter.thread = th; + waiter.fiber = fiber; + target_th->join_list = &waiter; struct join_arg arg; - arg.waiting_list = &waiting_list; + arg.waiter = &waiter; arg.target = target_th; arg.timeout = timeout; @@ -1308,7 +1308,7 @@ static VALUE thread_join_m(int argc, VALUE *argv, VALUE self) { VALUE timeout = Qnil; - + if (rb_check_arity(argc, 0, 1)) { timeout = argv[0]; } -- cgit v1.2.3