summaryrefslogtreecommitdiff
path: root/vm_core.h
diff options
context:
space:
mode:
Diffstat (limited to 'vm_core.h')
-rw-r--r--vm_core.h19
1 files changed, 16 insertions, 3 deletions
diff --git a/vm_core.h b/vm_core.h
index e5fdba44b9..faab30b1d7 100644
--- a/vm_core.h
+++ b/vm_core.h
@@ -936,9 +936,22 @@ typedef struct rb_thread_struct {
rb_thread_list_t *join_list;
- VALUE first_proc;
- VALUE first_args;
- VALUE (*first_func)(ANYARGS);
+ union {
+ struct {
+ VALUE proc;
+ VALUE args;
+ } proc;
+ struct {
+ VALUE (*func)(ANYARGS);
+ void *arg;
+ } func;
+ } invoke_arg;
+
+ enum {
+ thread_invoke_type_none = 0,
+ thread_invoke_type_proc,
+ thread_invoke_type_func,
+ } invoke_type;
/* statistics data for profiler */
VALUE stat_insn_usage;