From 6be61ab264c98c96e26b5d3398cf80b49197ba29 Mon Sep 17 00:00:00 2001 From: Koichi Sasada Date: Mon, 21 Dec 2020 02:04:38 +0900 Subject: should use owned_p instead of locked_p It should raise an error if the same thread tris to call receive/receive_if. --- ractor.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'ractor.c') diff --git a/ractor.c b/ractor.c index be067d6113..7c5c864612 100644 --- a/ractor.c +++ b/ractor.c @@ -12,6 +12,7 @@ #include "internal/hash.h" #include "internal/rational.h" #include "internal/struct.h" +#include "internal/thread.h" #include "variable.h" #include "gc.h" #include "transient_heap.h" @@ -473,7 +474,7 @@ ractor_basket_accept(struct rb_ractor_basket *b) static void ractor_recursive_receive_if(rb_ractor_t *r) { - if (r->receiving_mutex && rb_mutex_locked_p(r->receiving_mutex)) { + if (r->receiving_mutex && rb_mutex_owned_p(r->receiving_mutex)) { rb_raise(rb_eRactorError, "can not call receive/receive_if recursively"); } } -- cgit v1.2.3