 Adds per-thread tracing by adding methods Thread#tracing? and Thread#tracing=
+Thread#exec_event_tracing? and Thread#exec_event_tracing=
 
 The basic mechanism of per-tracing thread was already inside. This
 just exposes the ability the set or query thread tracing individually
 by adding a couple of methods.
+
+exec_event_tracing is a little bit hoaky.
 
 diff --git a/thread.c b/thread.c
 index 2cf1064..69e6daa 100644

     /* init thread core */
     {
 	/* main thread setting */
@@ -4846,4 +4881,3 @@ rb_reset_coverages(void)
     GET_VM()->coverages = Qfalse;
     rb_remove_event_hook(update_coverage);
 }

 	    }
 	}
     }
@@ -4404,6 +4435,7 @@
     rb_remove_event_hook(call_trace_func);
 
     if (NIL_P(trace)) {
+	GET_THREAD()->exec_event_tracing = 0;
 	GET_THREAD()->tracing = EVENT_RUNNING_NOTHING;
 	return Qnil;
     }
@@ -4461,6 +4493,7 @@ thread_suppress_tracing(rb_thread_t *th, int ev, VALUE (*func)(VALUE, int), VALU
     rb_threadptr_remove_event_hook(th, call_trace_func);
 
     if (NIL_P(trace)) {
+	GET_THREAD()->exec_event_tracing = 0;
 	th->tracing = EVENT_RUNNING_NOTHING;
 	return Qnil;
     }
@@ -4592,6 +4625,67 @@
     return result;
 }
 
