diff options
author | Koichi Sasada <[email protected]> | 2019-11-08 09:39:28 +0900 |
---|---|---|
committer | Koichi Sasada <[email protected]> | 2019-11-08 10:03:19 +0900 |
commit | 365557f111b453289a5e2ce0cdda0899ae248c71 (patch) | |
tree | b5df6aef79ebf5cd02a3182bce5163724881178b /io.c | |
parent | dad2abc69fdd1af52df353b8604017bd6a5c6a99 (diff) |
Define IO#read/write_nonblock with builtins.
IO#read/write_nonblock methods are defined in prelude.rb with
special private method __read/write_nonblock to reduce keyword
parameters overhead. We can move them into io.rb with builtin
functions.
Diffstat (limited to 'io.c')
-rw-r--r-- | io.c | 17 |
1 files changed, 11 insertions, 6 deletions
@@ -22,6 +22,7 @@ #include <errno.h> #include "ruby_atomic.h" #include "ccan/list/list.h" +#include "builtin.h" #undef free #define free(x) xfree(x) @@ -2941,7 +2942,7 @@ io_nonblock_eof(int no_exception) /* :nodoc: */ static VALUE -io_read_nonblock(VALUE io, VALUE length, VALUE str, VALUE ex) +io_read_nonblock(rb_execution_context_t *ec, VALUE io, VALUE length, VALUE str, VALUE ex) { rb_io_t *fptr; long n, len; @@ -2993,7 +2994,7 @@ io_read_nonblock(VALUE io, VALUE length, VALUE str, VALUE ex) /* :nodoc: */ static VALUE -io_write_nonblock(VALUE io, VALUE str, VALUE ex) +io_write_nonblock(rb_execution_context_t *ec, VALUE io, VALUE str, VALUE ex) { rb_io_t *fptr; long n; @@ -13312,10 +13313,6 @@ Init_IO(void) rb_define_method(rb_cIO, "readlines", rb_io_readlines, -1); - /* for prelude.rb use only: */ - rb_define_private_method(rb_cIO, "__read_nonblock", io_read_nonblock, 3); - rb_define_private_method(rb_cIO, "__write_nonblock", io_write_nonblock, 2); - rb_define_method(rb_cIO, "readpartial", io_readpartial, -1); rb_define_method(rb_cIO, "read", io_read, -1); rb_define_method(rb_cIO, "write", io_write_m, -1); @@ -13525,3 +13522,11 @@ Init_IO(void) sym_wait_readable = ID2SYM(rb_intern("wait_readable")); sym_wait_writable = ID2SYM(rb_intern("wait_writable")); } + +#include "load_io.inc" + +void +Init_IO_nonblock(void) +{ + load_io(); +} |