summaryrefslogtreecommitdiff
path: root/ractor.c
diff options
context:
space:
mode:
authorBenoit Daloze <eregontp@gmail.com>2020-10-03 14:05:15 +0200
committerBenoit Daloze <eregontp@gmail.com>2020-10-10 12:48:09 +0200
commitbfc1c7205d9592b5b5be3b351fbf7b9ca8c537b6 (patch)
tree900787ffb208d56d3e120714b8d235d6f6d6ca16 /ractor.c
parent9eccf0711fedb7be90b2e4995845eaafacb0c6dd (diff)
Add Ractor#receive and Ractor.receive and use it in all places
* Keep Ractor#recv/Ractor.recv as an alias for now.
Notes
Notes: Merged: https://github.com/ruby/ruby/pull/3626
Diffstat (limited to 'ractor.c')
-rw-r--r--ractor.c44
1 files changed, 22 insertions, 22 deletions
diff --git a/ractor.c b/ractor.c
index 1ab4f37681..a8b12c7351 100644
--- a/ractor.c
+++ b/ractor.c
@@ -503,7 +503,7 @@ ractor_copy_setup(struct rb_ractor_basket *b, VALUE obj)
}
static VALUE
-ractor_try_recv(rb_execution_context_t *ec, rb_ractor_t *r)
+ractor_try_receive(rb_execution_context_t *ec, rb_ractor_t *r)
{
struct rb_ractor_queue *rq = &r->incoming_queue;
struct rb_ractor_basket basket;
@@ -553,13 +553,13 @@ wait_status_str(enum ractor_wait_status wait_status)
{
switch ((int)wait_status) {
case wait_none: return "none";
- case wait_recving: return "recving";
+ case wait_receiving: return "receiving";
case wait_taking: return "taking";
case wait_yielding: return "yielding";
- case wait_recving|wait_taking: return "recving|taking";
- case wait_recving|wait_yielding: return "recving|yielding";
+ case wait_receiving|wait_taking: return "receiving|taking";
+ case wait_receiving|wait_yielding: return "receiving|yielding";
case wait_taking|wait_yielding: return "taking|yielding";
- case wait_recving|wait_taking|wait_yielding: return "recving|taking|yielding";
+ case wait_receiving|wait_taking|wait_yielding: return "receiving|taking|yielding";
}
rb_bug("unrechable");
}
@@ -715,18 +715,18 @@ ractor_waiting_list_shift(rb_ractor_t *r, struct rb_ractor_waiting_list *wl)
}
static VALUE
-ractor_recv(rb_execution_context_t *ec, rb_ractor_t *r)
+ractor_receive(rb_execution_context_t *ec, rb_ractor_t *r)
{
VM_ASSERT(r == rb_ec_ractor_ptr(ec));
VALUE v;
- while ((v = ractor_try_recv(ec, r)) == Qundef) {
+ while ((v = ractor_try_receive(ec, r)) == Qundef) {
RACTOR_LOCK(r);
{
if (ractor_queue_empty_p(r, &r->incoming_queue)) {
VM_ASSERT(r->wait.status == wait_none);
VM_ASSERT(r->wait.wakeup_status == wakeup_none);
- r->wait.status = wait_recving;
+ r->wait.status = wait_receiving;
ractor_sleep(ec, r);
@@ -752,7 +752,7 @@ ractor_send_basket(rb_execution_context_t *ec, rb_ractor_t *r, struct rb_ractor_
}
else {
ractor_queue_enq(r, rq, b);
- if (ractor_wakeup(r, wait_recving, wakeup_by_send)) {
+ if (ractor_wakeup(r, wait_receiving, wakeup_by_send)) {
RUBY_DEBUG_LOG("wakeup", 0);
}
}
@@ -890,7 +890,7 @@ ractor_select(rb_execution_context_t *ec, const VALUE *rs, int alen, VALUE yield
struct ractor_select_action {
enum ractor_select_action_type {
ractor_select_action_take,
- ractor_select_action_recv,
+ ractor_select_action_receive,
ractor_select_action_yield,
} type;
VALUE v;
@@ -906,9 +906,9 @@ ractor_select(rb_execution_context_t *ec, const VALUE *rs, int alen, VALUE yield
VALUE v = rs[i];
if (v == crv) {
- actions[i].type = ractor_select_action_recv;
+ actions[i].type = ractor_select_action_receive;
actions[i].v = Qnil;
- wait_status |= wait_recving;
+ wait_status |= wait_receiving;
}
else if (rb_ractor_p(v)) {
actions[i].type = ractor_select_action_take;
@@ -949,10 +949,10 @@ ractor_select(rb_execution_context_t *ec, const VALUE *rs, int alen, VALUE yield
goto cleanup;
}
break;
- case ractor_select_action_recv:
- v = ractor_try_recv(ec, cr);
+ case ractor_select_action_receive:
+ v = ractor_try_receive(ec, cr);
if (v != Qundef) {
- *ret_r = ID2SYM(rb_intern("recv"));
+ *ret_r = ID2SYM(rb_intern("receive"));
ret = v;
goto cleanup;
}
@@ -988,7 +988,7 @@ ractor_select(rb_execution_context_t *ec, const VALUE *rs, int alen, VALUE yield
ractor_register_taking(r, cr);
break;
case ractor_select_action_yield:
- case ractor_select_action_recv:
+ case ractor_select_action_receive:
break;
}
}
@@ -1009,7 +1009,7 @@ ractor_select(rb_execution_context_t *ec, const VALUE *rs, int alen, VALUE yield
goto skip_sleep;
}
break;
- case ractor_select_action_recv:
+ case ractor_select_action_receive:
if (cr->incoming_queue.cnt > 0) {
RUBY_DEBUG_LOG("wakeup_none, but incoming_queue has %u messages", cr->incoming_queue.cnt);
cr->wait.wakeup_status = wakeup_by_retry;
@@ -1052,7 +1052,7 @@ ractor_select(rb_execution_context_t *ec, const VALUE *rs, int alen, VALUE yield
r = RACTOR_PTR(actions[i].v);
ractor_waiting_list_del(r, &r->taking_ractors, cr);
break;
- case ractor_select_action_recv:
+ case ractor_select_action_receive:
case ractor_select_action_yield:
break;
}
@@ -1072,7 +1072,7 @@ ractor_select(rb_execution_context_t *ec, const VALUE *rs, int alen, VALUE yield
break;
case wakeup_by_send:
// OK.
- // retry loop and try_recv will succss.
+ // retry loop and try_receive will succss.
break;
case wakeup_by_yield:
// take was succeeded!
@@ -1145,7 +1145,7 @@ ractor_close_incoming(rb_execution_context_t *ec, rb_ractor_t *r)
if (!r->incoming_port_closed) {
prev = Qfalse;
r->incoming_port_closed = true;
- if (ractor_wakeup(r, wait_recving, wakeup_by_close)) {
+ if (ractor_wakeup(r, wait_receiving, wakeup_by_close)) {
VM_ASSERT(r->incoming_queue.cnt == 0);
RUBY_DEBUG_LOG("cancel receiving", 0);
}
@@ -1442,10 +1442,10 @@ rb_ractor_atexit_exception(rb_execution_context_t *ec)
}
void
-rb_ractor_recv_parameters(rb_execution_context_t *ec, rb_ractor_t *r, int len, VALUE *ptr)
+rb_ractor_receive_parameters(rb_execution_context_t *ec, rb_ractor_t *r, int len, VALUE *ptr)
{
for (int i=0; i<len; i++) {
- ptr[i] = ractor_recv(ec, r);
+ ptr[i] = ractor_receive(ec, r);
}
}