Bug #3354 » bug-3354.patch
thread.c | ||
---|---|---|
#define blocking_region_begin(th, region, func, arg) \
|
||
do { \
|
||
(region)->prev_status = (th)->status; \
|
||
(th)->blocking_region_buffer = (region); \
|
||
set_unblock_function((th), (func), (arg), &(region)->oldubf); \
|
||
(th)->blocking_region_buffer = (region); \
|
||
(th)->status = THREAD_STOPPED; \
|
||
thread_debug("enter blocking region (%p)\n", (void *)(th)); \
|
||
RB_GC_SAVE_MACHINE_CONTEXT(th); \
|