diff --git a/src/protocol/eval/executor.rs b/src/protocol/eval/executor.rs index aded401d18af5b9c3253fe43f2183f73167db1b4..3b16522574521e6ec3bdb70b57ee34b22073a949 100644 --- a/src/protocol/eval/executor.rs +++ b/src/protocol/eval/executor.rs @@ -585,7 +585,7 @@ impl Prompt { unreachable!("executor calling 'get' on value {:?}", value) }; - match ctx.get(port_id) { + match ctx.performed_get(port_id) { Some(result) => { // We have the result. Merge the `ValueGroup` with the // stack/heap storage. @@ -614,11 +614,12 @@ impl Prompt { let msg_value = cur_frame.expr_values.pop_front().unwrap(); let deref_msg_value = self.store.maybe_read_ref(&msg_value).clone(); - if ctx.did_put(port_id) { + if ctx.performed_put(port_id) { // We're fine, deallocate in case the expression value stack // held an owned value self.store.drop_value(msg_value.get_heap_pos()); } else { + // Prepare to execute again cur_frame.expr_values.push_front(msg_value); cur_frame.expr_values.push_front(port_value); cur_frame.expr_stack.push_back(ExprInstruction::EvalExpr(expr_id)); @@ -811,7 +812,7 @@ impl Prompt { LocalStatement::Channel(stmt) => { // Need to create a new channel by requesting it from // the runtime. - match ctx.get_channel() { + match ctx.created_channel() { None => { // No channel is pending. So request one Ok(EvalContinuation::NewChannel) @@ -893,7 +894,7 @@ impl Prompt { cur_frame.position = stmt.left_body.upcast(); } else { // Need to fork - if let Some(go_left) = ctx.get_fork() { + if let Some(go_left) = ctx.performed_fork() { // Runtime has created a fork if go_left { cur_frame.position = stmt.left_body.upcast();