ko1 / atdot.net wrote:
> > Subject: [PATCH] iseq_inline_storage_entry: 24=>16 bytes on x86-64
> 
> > +#define RUNNING_THREAD_ONCE_DONE ((rb_thread_t *)(0x1))
> 
> How about to define macro such as 
> 
> #define ONCE_FINISHED(once) ((once)->running_thread == 0x01)
> 
> and use as
> 
> if (ONCE_FINIHSED(&is->once)) { ... }

I would need another macro for setting 0x1:

+	is->once.running_thread = RUNNING_THREAD_ONCE_DONE; /* success */

I prefer to only introduce one new macro.