summaryrefslogtreecommitdiff
path: root/vm_callinfo.h
diff options
context:
space:
mode:
authorKoichi Sasada <ko1@atdot.net>2020-12-15 05:40:38 +0900
committerKoichi Sasada <ko1@atdot.net>2020-12-15 13:29:30 +0900
commitaa6287cd26582e64c19e37dea3fd90b380b85d5b (patch)
treedeb67efb225d92d0633f5fed5553aa2190a6ed8e /vm_callinfo.h
parent40b7358e934e3b1f2cc7a664f97e5cc1393cbc77 (diff)
fix inline method cache sync bug
`cd` is passed to method call functions to method invocation functions, but `cd` can be manipulated by other ractors simultaneously so it contains thread-safety issue. To solve this issue, this patch stores `ci` and found `cc` to `calling` and stops to pass `cd`.
Notes
Notes: Merged: https://github.com/ruby/ruby/pull/3903
Diffstat (limited to 'vm_callinfo.h')
-rw-r--r--vm_callinfo.h3
1 files changed, 1 insertions, 2 deletions
diff --git a/vm_callinfo.h b/vm_callinfo.h
index b268783695..4ee6fa72e6 100644
--- a/vm_callinfo.h
+++ b/vm_callinfo.h
@@ -267,8 +267,7 @@ vm_ci_markable(const struct rb_callinfo *ci)
typedef VALUE (*vm_call_handler)(
struct rb_execution_context_struct *ec,
struct rb_control_frame_struct *cfp,
- struct rb_calling_info *calling,
- struct rb_call_data *cd);
+ struct rb_calling_info *calling);
// imemo_callcache