18#if defined(HAVE_UNISTD_H) && (defined(__sun))
21#if defined(HAVE_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)
68io_wait_event(
VALUE io,
int event,
VALUE timeout)
72 if (!RB_TEST(result)) {
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_define_method(klass, mid, func, arity)
Defines klass#mid.
void rb_raise(VALUE exc, const char *fmt,...)
#define RB_EXT_RACTOR_SAFE(f)
struct timeval rb_time_interval(VALUE num)
ID rb_intern(const char *)
void rb_io_check_writable(rb_io_t *)
void rb_io_check_readable(rb_io_t *)
int rb_io_read_pending(rb_io_t *)
#define RB_IO_POINTER(obj, fp)
VALUE rb_io_wait(VALUE io, VALUE events, VALUE timeout)
#define FIONREAD_POSSIBLE_P(fd)