Skip to content

Commit

Permalink
Add support for safe offload of no-gvl code.
Browse files Browse the repository at this point in the history
  • Loading branch information
ioquatix committed Nov 20, 2024
1 parent e445cf3 commit 7ff405b
Showing 1 changed file with 6 additions and 1 deletion.
7 changes: 6 additions & 1 deletion ext/zlib/zlib.c
Original file line number Diff line number Diff line change
Expand Up @@ -1042,6 +1042,11 @@ zstream_unblock_func(void *ptr)
args->interrupt = 1;
}

#ifndef RB_NOGVL_OFFLOAD_SAFE
// Default to no-op if it's not defined:
#define RB_NOGVL_OFFLOAD_SAFE 0
#endif

static VALUE
zstream_run_once_begin(VALUE _arguments)
{
Expand All @@ -1053,7 +1058,7 @@ zstream_run_once_begin(VALUE _arguments)
#ifndef RB_NOGVL_UBF_ASYNC_SAFE
return (VALUE)rb_thread_call_without_gvl(zstream_run_once, (void *)arguments, zstream_unblock_func, (void *)arguments);
#else
return (VALUE)rb_nogvl(zstream_run_once, (void *)arguments, zstream_unblock_func, (void *)arguments, RB_NOGVL_UBF_ASYNC_SAFE);
return (VALUE)rb_nogvl(zstream_run_once, (void *)arguments, zstream_unblock_func, (void *)arguments, RB_NOGVL_UBF_ASYNC_SAFE | RB_NOGVL_OFFLOAD_SAFE);
#endif
}

Expand Down

0 comments on commit 7ff405b

Please sign in to comment.