From aa6287cd26582e64c19e37dea3fd90b380b85d5b Mon Sep 17 00:00:00 2001 From: Koichi Sasada Date: Tue, 15 Dec 2020 05:40:38 +0900 Subject: 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`. --- vm_callinfo.h | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) (limited to 'vm_callinfo.h') 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 -- cgit v1.2.1