From eab99b1d4b61fb85d994534826922f96cd14ae58 Mon Sep 17 00:00:00 2001 From: Koichi Sasada Date: Fri, 20 May 2022 15:47:20 +0900 Subject: `rb_thread_t::serial` for debug `rb_thread_t::serial` is auto-incremented serial number for threads and it can overflow, it means the serial is not a ID for each thread, it is only for debug print. `RUBY_DEBUG_LOG` shows this information. Also skip EC related information if EC is NULL. This patch enable to use `RUBY_DEBUG_LOG` without setup EC. --- vm.c | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'vm.c') diff --git a/vm.c b/vm.c index 821db8bfcc..67189987f1 100644 --- a/vm.c +++ b/vm.c @@ -3292,6 +3292,11 @@ th_init(rb_thread_t *th, VALUE self, rb_vm_t *vm, rb_ractor_t *r) th->name = Qnil; th->report_on_exception = vm->thread_report_on_exception; th->ext_config.ractor_safe = true; + +#if USE_RUBY_DEBUG_LOG + static rb_atomic_t thread_serial = 0; + th->serial = RUBY_ATOMIC_FETCH_ADD(thread_serial, 1); +#endif } VALUE -- cgit v1.2.3