Ruby
3.1.0dev(2021-09-10revisionb76ad15ed0da636161de0243c547ee1e6fc95681)
|
Go to the documentation of this file.
17 #include <sys/types.h>
18 #if defined(HAVE_UNISTD_H) && (defined(__sun))
21 #if defined(HAVE_SYS_IOCTL_H)
22 #include <sys/ioctl.h>
24 #if defined(FIONREAD_HEADER)
25 #include FIONREAD_HEADER
28 #ifdef HAVE_RB_W32_IOCTLSOCKET
29 #define ioctl ioctlsocket
30 #define ioctl_arg u_long
31 #define ioctl_arg2num(i) ULONG2NUM(i)
34 #define ioctl_arg2num(i) INT2NUM(i)
37 #ifdef HAVE_RB_W32_IS_SOCKET
38 #define FIONREAD_POSSIBLE_P(fd) rb_w32_is_socket(fd)
40 #define FIONREAD_POSSIBLE_P(fd) ((void)(fd),Qtrue)
68 io_wait_event(
VALUE io,
int event,
VALUE timeout)
72 if (!RB_TEST(result)) {
178 wait_mode_sym(
VALUE mode)
234 if (
argc != 2 || (RB_SYMBOL_P(
argv[0]) || RB_SYMBOL_P(
argv[1]))) {
235 for (
int i = 0; i <
argc; i += 1) {
236 if (RB_SYMBOL_P(
argv[i])) {
237 events |= wait_mode_sym(
argv[i]);
239 else if (timeout ==
Qundef) {
249 events = RB_NUM2UINT(
argv[0]);
266 return io_wait_event(io, events, timeout);
276 #ifdef HAVE_RB_EXT_RACTOR_SAFE
#define RB_IO_POINTER(obj, fp)
struct timeval rb_time_interval(VALUE num)
#define RB_EXT_RACTOR_SAFE(f)
ID rb_intern(const char *)
void rb_io_check_readable(rb_io_t *)
void rb_raise(VALUE exc, const char *fmt,...)
int rb_io_read_pending(rb_io_t *)
#define FIONREAD_POSSIBLE_P(fd)
void rb_io_check_writable(rb_io_t *)
#define rb_define_method(klass, mid, func, arity)
Defines klass#mid.
VALUE rb_io_wait(VALUE io, VALUE events, VALUE timeout)