summaryrefslogtreecommitdiff
path: root/vm.c
diff options
context:
space:
mode:
authornobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2014-06-11 08:38:09 (GMT)
committernobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2014-06-11 08:38:09 (GMT)
commitdfd8c5d4020131798d3fe52bb6a0c973422aded2 (patch)
tree71e12951745cde99de92fd7cd79bf3c90052afff /vm.c
parente2b10b6d131425c395c5fe286ce6fd55d46f7c51 (diff)
thread.c: fix for non-scalar pthread_t
* configure.in (rb_cv_scalar_pthread_t): pthread_t is not required to be a scalar type. * thread.c (fill_thread_id_string, thread_id_str): dump pthread_t in hexadecimal form if it is not a scalar type, assume it can be represented in a pointer form otherwise. based on the patch by Rei Odaira at [ruby-core:62867]. [ruby-core:62857] [Bug #9884] * thread_pthread.c (Init_native_thread, thread_start_func_1), (native_thread_create): set thread_id_str if needed. * vm_core.h (rb_thread_t): add thread_id_string if needed. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46406 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'vm.c')
-rw-r--r--vm.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/vm.c b/vm.c
index 52e1f07..b4e7a5c 100644
--- a/vm.c
+++ b/vm.c
@@ -2131,6 +2131,9 @@ th_init(rb_thread_t *th, VALUE self)
th->last_status = Qnil;
th->waiting_fd = -1;
th->root_svar = Qnil;
+#ifdef NON_SCALAR_THREAD_ID
+ th->thread_id_string[0] = '\0';
+#endif
#if OPT_CALL_THREADED_CODE
th->retval = Qundef;