From aba0929a5ab10af0388a0528ec453ab29e6625c3 Mon Sep 17 00:00:00 2001 From: normal Date: Mon, 20 Aug 2018 23:48:03 +0000 Subject: cont.c (struct rb_fiber_struct): bitfields for trasnferred and status On 32-bit x86, this reduces the struct from 836 to 832 bytes and brings us down to 13 (64-byte) cachelines (from 14). git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64487 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- cont.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'cont.c') diff --git a/cont.c b/cont.c index e7ad79f99c..f1d5bc8dc3 100644 --- a/cont.c +++ b/cont.c @@ -175,12 +175,12 @@ struct rb_fiber_struct { rb_context_t cont; VALUE first_proc; struct rb_fiber_struct *prev; - enum fiber_status status; + BITFIELD(enum fiber_status status) : 2; /* If a fiber invokes "transfer", * then this fiber can't "resume" any more after that. * You shouldn't mix "transfer" and "resume". */ - int transferred; + unsigned int transferred : 1; #if FIBER_USE_NATIVE #ifdef _WIN32 -- cgit v1.2.3