summaryrefslogtreecommitdiff
path: root/io.c
diff options
context:
space:
mode:
authorNobuyoshi Nakada <[email protected]>2024-01-24 20:51:50 +0900
committerNobuyoshi Nakada <[email protected]>2024-01-24 20:51:50 +0900
commitd86c4e553ee8ff899a103a49db0b66c73c01135f (patch)
treebc9ae843fbba608ea14f9c06d900427ffc380e28 /io.c
parent0f417d640de16339c85ba8f4bd60e6ac2ce506eb (diff)
Define `IO_WITHOUT_GVL` macro
Diffstat (limited to 'io.c')
-rw-r--r--io.c9
1 files changed, 4 insertions, 5 deletions
diff --git a/io.c b/io.c
index f8963b504f..54952c1a2f 100644
--- a/io.c
+++ b/io.c
@@ -5429,7 +5429,7 @@ maygvl_close(int fd, int keepgvl)
* close() may block for certain file types (NFS, SO_LINGER sockets,
* inotify), so let other threads run.
*/
- return (int)(intptr_t)rb_thread_call_without_gvl(nogvl_close, &fd, RUBY_UBF_IO, 0);
+ return IO_WITHOUT_GVL_INT(nogvl_close, &fd);
}
static void*
@@ -5446,7 +5446,7 @@ maygvl_fclose(FILE *file, int keepgvl)
if (keepgvl)
return fclose(file);
- return (int)(intptr_t)rb_thread_call_without_gvl(nogvl_fclose, file, RUBY_UBF_IO, 0);
+ return IO_WITHOUT_GVL_INT(nogvl_fclose, file);
}
static void free_io_buffer(rb_io_buffer_t *buf);
@@ -6967,8 +6967,7 @@ sysopen_func(void *ptr)
static inline int
rb_sysopen_internal(struct sysopen_struct *data)
{
- int fd;
- fd = (int)(VALUE)rb_thread_call_without_gvl(sysopen_func, data, RUBY_UBF_IO, 0);
+ int fd = IO_WITHOUT_GVL_INT(sysopen_func, data);
if (0 <= fd)
rb_update_max_fd(fd);
return fd;
@@ -13260,7 +13259,7 @@ copy_stream_body(VALUE arg)
return copy_stream_fallback(stp);
}
- rb_thread_call_without_gvl(nogvl_copy_stream_func, (void*)stp, RUBY_UBF_IO, 0);
+ IO_WITHOUT_GVL(nogvl_copy_stream_func, stp);
return Qnil;
}