File tree 4 files changed +7
-4
lines changed
4 files changed +7
-4
lines changed Original file line number Diff line number Diff line change @@ -329,7 +329,7 @@ namespace rubinius {
329
329
330
330
shared.gc_independent ();
331
331
332
- vm->set_zombie ();
332
+ vm->set_zombie (state );
333
333
334
334
RUBINIUS_THREAD_STOP (
335
335
const_cast <RBX_DTRACE_CHAR_P>(vm->name ().c_str ()), vm->thread_id (), 0 );
Original file line number Diff line number Diff line change @@ -39,6 +39,7 @@ namespace rubinius {
39
39
40
40
thread->run (state);
41
41
42
+ vm->set_call_frame (0 );
42
43
thread->thread_running_ = false ;
43
44
44
45
NativeMethod::cleanup_thread (state);
@@ -48,6 +49,8 @@ namespace rubinius {
48
49
49
50
shared.gc_independent ();
50
51
52
+ vm->set_zombie (state);
53
+
51
54
return 0 ;
52
55
}
53
56
Original file line number Diff line number Diff line change @@ -107,14 +107,14 @@ namespace rubinius {
107
107
108
108
void VM::discard (STATE, VM* vm) {
109
109
vm->saved_call_frame_ = 0 ;
110
- vm->shared .remove_vm (vm);
111
110
112
111
state->vm ()->metrics ().system .threads_destroyed ++;
113
112
114
113
delete vm;
115
114
}
116
115
117
- void VM::set_zombie () {
116
+ void VM::set_zombie (STATE) {
117
+ state->shared ().remove_vm (this );
118
118
thread.set (nil<Thread>());
119
119
zombie_ = true ;
120
120
}
Original file line number Diff line number Diff line change @@ -154,7 +154,7 @@ namespace rubinius {
154
154
return interrupt_lock_;
155
155
}
156
156
157
- void set_zombie ();
157
+ void set_zombie (STATE );
158
158
159
159
bool zombie_p () {
160
160
return zombie_;
You can’t perform that action at this time.
0 commit comments