summaryrefslogtreecommitdiff
path: root/ext/io/console
diff options
context:
space:
mode:
authorNobuyoshi Nakada <nobu@ruby-lang.org>2019-12-10 10:09:33 +0900
committerNobuyoshi Nakada <nobu@ruby-lang.org>2019-12-10 16:06:11 +0900
commitf9c0fe77c0ef6c5da1d8454bf6be6841c984d606 (patch)
treed6aefd170afe3ce074c142c1fecb5a1d2e9e35e7 /ext/io/console
parent09723b98f7a8db4ce6d22cd282525275154736fe (diff)
[ruby/io-console] Use rb_thread_call_without_gvl instead of the deprecated function
https://github.com/ruby/io-console/commit/21338ab287
Diffstat (limited to 'ext/io/console')
-rw-r--r--ext/io/console/console.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/ext/io/console/console.c b/ext/io/console/console.c
index 626d8d7..b83fb67 100644
--- a/ext/io/console/console.c
+++ b/ext/io/console/console.c
@@ -4,6 +4,7 @@
*/
#include "ruby.h"
#include "ruby/io.h"
+#include "ruby/thread.h"
#ifdef HAVE_UNISTD_H
#include <unistd.h>
@@ -454,7 +455,7 @@ getc_call(VALUE io)
return rb_funcallv(io, id_getc, 0, 0);
}
#else
-static VALUE
+static void *
nogvl_getch(void *p)
{
int len = 0;
@@ -473,7 +474,7 @@ nogvl_getch(void *p)
buf[len++] = c;
break;
}
- return (VALUE)len;
+ return (void *)(VALUE)len;
}
#endif
@@ -521,7 +522,7 @@ console_getch(int argc, VALUE *argv, VALUE io)
rb_warning("vtime option ignored if intr flag is unset");
}
}
- len = (int)rb_thread_io_blocking_region(nogvl_getch, wbuf, fptr->fd);
+ len = (int)(VALUE)rb_thread_call_without_gvl(nogvl_getch, wbuf, RUBY_UBF_IO, 0);
switch (len) {
case 0:
return Qnil;