From 82b33551a4ead2fa13120751242c493e2084cada Mon Sep 17 00:00:00 2001 From: kosaki Date: Sat, 24 Nov 2012 02:00:10 +0000 Subject: [PATCH] * thread.c (thread_create_core): don't use th->thread_id before initialized. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37824 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ChangeLog | 5 +++++ thread.c | 3 +-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index 17a04c9ab9..8ad03354a0 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +Sat Nov 24 10:59:14 2012 KOSAKI Motohiro + + * thread.c (thread_create_core): don't use th->thread_id before + initialized. + Sat Nov 24 00:00:53 2012 Nobuyoshi Nakada * ruby.c (proc_options, process_options, ruby_process_options): take diff --git a/thread.c b/thread.c index 159dbffc87..64eaadc9b5 100644 --- a/thread.c +++ b/thread.c @@ -570,13 +570,12 @@ thread_create_core(VALUE thval, VALUE args, VALUE (*fn)(ANYARGS)) native_mutex_initialize(&th->interrupt_lock); /* kick thread */ - st_insert(th->vm->living_threads, thval, (st_data_t) th->thread_id); err = native_thread_create(th); if (err) { - st_delete_wrap(th->vm->living_threads, th->self); th->status = THREAD_KILLED; rb_raise(rb_eThreadError, "can't create Thread (%d)", err); } + st_insert(th->vm->living_threads, thval, (st_data_t) th->thread_id); return thval; }