summaryrefslogtreecommitdiff
path: root/cont.c
diff options
context:
space:
mode:
Diffstat (limited to 'cont.c')
-rw-r--r--cont.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/cont.c b/cont.c
index cebb7a28de..d4d6f2e60d 100644
--- a/cont.c
+++ b/cont.c
@@ -704,6 +704,14 @@ cont_restore_thread(rb_context_t *cont)
th->ec->root_svar = sec->root_svar;
th->ec->ensure_list = sec->ensure_list;
th->ec->errinfo = sec->errinfo;
+
+ /* trace on -> trace off */
+ if (sec->trace_arg == NULL && th->ec->trace_arg != NULL) {
+ GET_VM()->trace_running--;
+ }
+ else if (sec->trace_arg == NULL && th->ec->trace_arg != NULL) {
+ GET_VM()->trace_running++;
+ }
th->ec->trace_arg = sec->trace_arg;
VM_ASSERT(th->ec->vm_stack != NULL);