From 72b7bd0af5278e8ba726c7ee9464d19d3a9adc21 Mon Sep 17 00:00:00 2001 From: normal Date: Sat, 27 Jan 2018 21:04:36 +0000 Subject: [PATCH] vm_core: use "int" for living_thread_num We treat this as "int" through the vm_living_thread_num API anyways, and "pid_t" is still 32-bits with glibc on 64-bit platforms. I expect it'll be a long time before anybody needs more than 2 billion native threads. For now, let's save one cacheline on x86-64 (as reported by pahole(1)): before: size: 1288, cachelines: 21, members: 45 after: size: 1280, cachelines: 20, members: 45 git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@62075 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- thread.c | 2 +- vm_core.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/thread.c b/thread.c index f50ad3de6a..acb53354fd 100644 --- a/thread.c +++ b/thread.c @@ -194,7 +194,7 @@ vm_check_ints_blocking(rb_execution_context_t *ec) static int vm_living_thread_num(rb_vm_t *vm) { - return (int)vm->living_thread_num; + return vm->living_thread_num; } #if THREAD_DEBUG diff --git a/vm_core.h b/vm_core.h index 176ec9d333..8bce7892b5 100644 --- a/vm_core.h +++ b/vm_core.h @@ -526,8 +526,8 @@ typedef struct rb_vm_struct { struct list_head waiting_fds; /* <=> struct waiting_fd */ struct list_head living_threads; - size_t living_thread_num; VALUE thgroup_default; + int living_thread_num; unsigned int running: 1; unsigned int thread_abort_on_exception: 1;