io-event 0.2.1 → 0.2.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/ext/IO_Event.so +0 -0
- data/ext/Makefile +29 -30
- data/ext/epoll.o +0 -0
- data/ext/event.o +0 -0
- data/ext/extconf.h +3 -1
- data/ext/interrupt.o +0 -0
- data/ext/io/event/interrupt.c +6 -6
- data/ext/io/event/interrupt.h +4 -0
- data/ext/io/event/selector/epoll.c +19 -14
- data/ext/io/event/selector/kqueue.c +15 -1
- data/ext/io/event/selector/selector.h +2 -0
- data/ext/io/event/selector/uring.c +8 -10
- data/ext/mkmf.log +83 -60
- data/ext/selector.o +0 -0
- data/ext/uring.o +0 -0
- data/lib/io/event/selector/select.rb +6 -1
- data/lib/io/event/version.rb +1 -1
- metadata +8 -7
- data/ext/IO_Event.bundle +0 -0
- data/ext/kqueue.o +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 42c3a881e6ec0701f4801997d37fb0db726b8be237113e1d18216124b3780696
|
4
|
+
data.tar.gz: bed05a684ba79871945e6d89752dafb39a04d46e1423bc22736f270995c6777a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: cf07851ef3309a9dc0d8dde93f4ef7f7ccab6c5757ddae1d713cccca5f3b3990d167c83847f991752a4c2627895404aebc4d605287a6e2db7cf44e5176f0205b
|
7
|
+
data.tar.gz: b5aa5dabb62b5ca20e0feb6918e5f6683a0e234fcda431ff527cf884c4d0aacc026f60c534fd66a07fe963bb4acee802bd93f355aec98d96cccdd47e0aafb8af
|
data/ext/IO_Event.so
ADDED
Binary file
|
data/ext/Makefile
CHANGED
@@ -12,12 +12,12 @@ NULLCMD = :
|
|
12
12
|
#### Start of system configuration section. ####
|
13
13
|
|
14
14
|
srcdir = .
|
15
|
-
topdir = /
|
15
|
+
topdir = /home/samuel/.rubies/ruby-3.0.3/include/ruby-3.0.0
|
16
16
|
hdrdir = $(topdir)
|
17
|
-
arch_hdrdir = /
|
17
|
+
arch_hdrdir = /home/samuel/.rubies/ruby-3.0.3/include/ruby-3.0.0/x86_64-linux
|
18
18
|
PATH_SEPARATOR = :
|
19
19
|
VPATH = $(srcdir):$(arch_hdrdir)/ruby:$(hdrdir)/ruby:$(srcdir)/io/event:$(srcdir)/io/event/selector
|
20
|
-
prefix = $(DESTDIR)/
|
20
|
+
prefix = $(DESTDIR)/home/samuel/.rubies/ruby-3.0.3
|
21
21
|
rubysitearchprefix = $(rubylibprefix)/$(sitearch)
|
22
22
|
rubyarchprefix = $(rubylibprefix)/$(arch)
|
23
23
|
rubylibprefix = $(libdir)/$(RUBY_BASE_NAME)
|
@@ -50,7 +50,7 @@ dvidir = $(docdir)
|
|
50
50
|
htmldir = $(docdir)
|
51
51
|
infodir = $(datarootdir)/info
|
52
52
|
docdir = $(datarootdir)/doc/$(PACKAGE)
|
53
|
-
oldincludedir = $(
|
53
|
+
oldincludedir = $(DESTDIR)/usr/include
|
54
54
|
includedir = $(prefix)/include
|
55
55
|
runstatedir = $(localstatedir)/run
|
56
56
|
localstatedir = $(prefix)/var
|
@@ -65,12 +65,12 @@ archdir = $(rubyarchdir)
|
|
65
65
|
|
66
66
|
|
67
67
|
CC_WRAPPER =
|
68
|
-
CC =
|
69
|
-
CXX =
|
68
|
+
CC = gcc
|
69
|
+
CXX = g++
|
70
70
|
LIBRUBY = $(LIBRUBY_A)
|
71
71
|
LIBRUBY_A = lib$(RUBY_SO_NAME)-static.a
|
72
|
-
LIBRUBYARG_SHARED =
|
73
|
-
LIBRUBYARG_STATIC = -l$(RUBY_SO_NAME)-static
|
72
|
+
LIBRUBYARG_SHARED = -Wl,-rpath,$(libdir) -L$(libdir)
|
73
|
+
LIBRUBYARG_STATIC = -Wl,-rpath,$(libdir) -L$(libdir) -l$(RUBY_SO_NAME)-static $(MAINLIBS)
|
74
74
|
empty =
|
75
75
|
OUTFLAG = -o $(empty)
|
76
76
|
COUTFLAG = -o $(empty)
|
@@ -81,31 +81,31 @@ cflags = $(optflags) $(debugflags) $(warnflags)
|
|
81
81
|
cxxflags =
|
82
82
|
optflags = -O3
|
83
83
|
debugflags = -ggdb3
|
84
|
-
warnflags = -Wall -Wextra -Wdeprecated-declarations -
|
84
|
+
warnflags = -Wall -Wextra -Wdeprecated-declarations -Wduplicated-cond -Wimplicit-function-declaration -Wimplicit-int -Wmisleading-indentation -Wpointer-arith -Wwrite-strings -Wimplicit-fallthrough=0 -Wmissing-noreturn -Wno-cast-function-type -Wno-constant-logical-operand -Wno-long-long -Wno-missing-field-initializers -Wno-overlength-strings -Wno-packed-bitfield-compat -Wno-parentheses-equality -Wno-self-assign -Wno-tautological-compare -Wno-unused-parameter -Wno-unused-value -Wsuggest-attribute=format -Wsuggest-attribute=noreturn -Wunused-variable
|
85
85
|
cppflags =
|
86
|
-
CCDLFLAGS = -
|
87
|
-
CFLAGS = $(CCDLFLAGS) $(cflags) -
|
86
|
+
CCDLFLAGS = -fPIC
|
87
|
+
CFLAGS = $(CCDLFLAGS) $(cflags) -Wall $(ARCH_FLAG)
|
88
88
|
INCFLAGS = -I. -I$(arch_hdrdir) -I$(hdrdir)/ruby/backward -I$(hdrdir) -I$(srcdir)
|
89
89
|
DEFS =
|
90
|
-
CPPFLAGS = -DRUBY_EXTCONF_H=\"$(RUBY_EXTCONF_H)\"
|
90
|
+
CPPFLAGS = -DRUBY_EXTCONF_H=\"$(RUBY_EXTCONF_H)\" $(DEFS) $(cppflags)
|
91
91
|
CXXFLAGS = $(CCDLFLAGS) $(ARCH_FLAG)
|
92
|
-
ldflags = -L. -fstack-protector-strong -
|
93
|
-
dldflags = -Wl
|
94
|
-
ARCH_FLAG =
|
92
|
+
ldflags = -L. -fstack-protector-strong -rdynamic -Wl,-export-dynamic
|
93
|
+
dldflags = -Wl,--compress-debug-sections=zlib
|
94
|
+
ARCH_FLAG =
|
95
95
|
DLDFLAGS = $(ldflags) $(dldflags) $(ARCH_FLAG)
|
96
|
-
LDSHARED = $(CC) -
|
97
|
-
LDSHAREDXX = $(CXX) -
|
98
|
-
AR = ar
|
96
|
+
LDSHARED = $(CC) -shared
|
97
|
+
LDSHAREDXX = $(CXX) -shared
|
98
|
+
AR = gcc-ar
|
99
99
|
EXEEXT =
|
100
100
|
|
101
101
|
RUBY_INSTALL_NAME = $(RUBY_BASE_NAME)
|
102
|
-
RUBY_SO_NAME = ruby
|
102
|
+
RUBY_SO_NAME = ruby
|
103
103
|
RUBYW_INSTALL_NAME =
|
104
104
|
RUBY_VERSION_NAME = $(RUBY_BASE_NAME)-$(ruby_version)
|
105
105
|
RUBYW_BASE_NAME = rubyw
|
106
106
|
RUBY_BASE_NAME = ruby
|
107
107
|
|
108
|
-
arch =
|
108
|
+
arch = x86_64-linux
|
109
109
|
sitearch = $(arch)
|
110
110
|
ruby_version = 3.0.0
|
111
111
|
ruby = $(bindir)/$(RUBY_BASE_NAME)
|
@@ -114,9 +114,9 @@ ruby_headers = $(hdrdir)/ruby.h $(hdrdir)/ruby/backward.h $(hdrdir)/ruby/ruby.h
|
|
114
114
|
|
115
115
|
RM = rm -f
|
116
116
|
RM_RF = $(RUBY) -run -e rm -- -rf
|
117
|
-
RMDIRS = rmdir -p
|
118
|
-
MAKEDIRS = /
|
119
|
-
INSTALL = /
|
117
|
+
RMDIRS = rmdir --ignore-fail-on-non-empty -p
|
118
|
+
MAKEDIRS = /usr/bin/mkdir -p
|
119
|
+
INSTALL = /usr/bin/install -c
|
120
120
|
INSTALL_PROG = $(INSTALL) -m 0755
|
121
121
|
INSTALL_DATA = $(INSTALL) -m 644
|
122
122
|
COPY = cp
|
@@ -125,8 +125,8 @@ TOUCH = exit >
|
|
125
125
|
#### End of system configuration section. ####
|
126
126
|
|
127
127
|
preload =
|
128
|
-
libpath = . $(libdir)
|
129
|
-
LIBPATH = -L. -L$(libdir) -
|
128
|
+
libpath = . $(libdir)
|
129
|
+
LIBPATH = -L. -L$(libdir) -Wl,-rpath,$(libdir)
|
130
130
|
DEFFILE =
|
131
131
|
|
132
132
|
CLEANFILES = mkmf.log
|
@@ -137,16 +137,16 @@ extout =
|
|
137
137
|
extout_prefix =
|
138
138
|
target_prefix =
|
139
139
|
LOCAL_LIBS =
|
140
|
-
LIBS =
|
140
|
+
LIBS = -luring -lm -lc
|
141
141
|
ORIG_SRCS =
|
142
|
-
SRCS = $(ORIG_SRCS) event.c selector.c
|
143
|
-
OBJS = event.o selector.o
|
142
|
+
SRCS = $(ORIG_SRCS) event.c selector.c uring.c epoll.c interrupt.c
|
143
|
+
OBJS = event.o selector.o uring.o epoll.o interrupt.o
|
144
144
|
HDRS = $(srcdir)/extconf.h
|
145
145
|
LOCAL_HDRS =
|
146
146
|
TARGET = IO_Event
|
147
147
|
TARGET_NAME = IO_Event
|
148
148
|
TARGET_ENTRY = Init_$(TARGET_NAME)
|
149
|
-
DLLIB = $(TARGET).
|
149
|
+
DLLIB = $(TARGET).so
|
150
150
|
EXTSTATIC =
|
151
151
|
STATIC_LIB =
|
152
152
|
|
@@ -260,7 +260,6 @@ $(TARGET_SO): $(OBJS) Makefile
|
|
260
260
|
$(ECHO) linking shared-object $(DLLIB)
|
261
261
|
-$(Q)$(RM) $(@)
|
262
262
|
$(Q) $(LDSHARED) -o $@ $(OBJS) $(LIBPATH) $(DLDFLAGS) $(LOCAL_LIBS) $(LIBS)
|
263
|
-
$(Q) $(POSTLINK)
|
264
263
|
|
265
264
|
|
266
265
|
|
data/ext/epoll.o
ADDED
Binary file
|
data/ext/event.o
CHANGED
Binary file
|
data/ext/extconf.h
CHANGED
data/ext/interrupt.o
CHANGED
Binary file
|
data/ext/io/event/interrupt.c
CHANGED
@@ -21,19 +21,16 @@
|
|
21
21
|
// static const int DEBUG = 0;
|
22
22
|
|
23
23
|
#include "interrupt.h"
|
24
|
-
#include <fcntl.h>
|
25
24
|
#include <unistd.h>
|
26
25
|
|
27
|
-
#ifdef HAVE_SYS_EVENTFD_H
|
28
|
-
#include <sys/eventfd.h>
|
29
|
-
#endif
|
30
|
-
|
31
26
|
#include "selector/selector.h"
|
32
27
|
|
33
28
|
#ifdef HAVE_SYS_EVENTFD_H
|
29
|
+
#include <sys/eventfd.h>
|
30
|
+
|
34
31
|
void IO_Event_Interrupt_open(struct IO_Event_Interrupt *interrupt)
|
35
32
|
{
|
36
|
-
interrupt->descriptor =
|
33
|
+
interrupt->descriptor = eventfd(0, EFD_CLOEXEC | EFD_NONBLOCK);
|
37
34
|
rb_update_max_fd(interrupt->descriptor);
|
38
35
|
}
|
39
36
|
|
@@ -63,6 +60,9 @@ void IO_Event_Interrupt_open(struct IO_Event_Interrupt *interrupt)
|
|
63
60
|
IO_Event_Selector_nonblock_set(interrupt->descriptor[0]);
|
64
61
|
IO_Event_Selector_nonblock_set(interrupt->descriptor[1]);
|
65
62
|
#endif
|
63
|
+
|
64
|
+
rb_update_max_fd(interrupt->descriptor[0]);
|
65
|
+
rb_update_max_fd(interrupt->descriptor[1]);
|
66
66
|
}
|
67
67
|
|
68
68
|
void IO_Event_Interrupt_close(struct IO_Event_Interrupt *interrupt)
|
data/ext/io/event/interrupt.h
CHANGED
@@ -28,6 +28,8 @@
|
|
28
28
|
#include "pidfd.c"
|
29
29
|
#include "../interrupt.h"
|
30
30
|
|
31
|
+
static const int DEBUG = 0;
|
32
|
+
|
31
33
|
static VALUE IO_Event_Selector_EPoll = Qnil;
|
32
34
|
|
33
35
|
enum {EPOLL_MAX_EVENTS = 64};
|
@@ -36,7 +38,7 @@ struct IO_Event_Selector_EPoll {
|
|
36
38
|
struct IO_Event_Selector backend;
|
37
39
|
int descriptor;
|
38
40
|
int blocked;
|
39
|
-
IO_Event_Interrupt interrupt;
|
41
|
+
struct IO_Event_Interrupt interrupt;
|
40
42
|
};
|
41
43
|
|
42
44
|
void IO_Event_Selector_EPoll_Type_mark(void *_data)
|
@@ -90,12 +92,12 @@ VALUE IO_Event_Selector_EPoll_allocate(VALUE self) {
|
|
90
92
|
return instance;
|
91
93
|
}
|
92
94
|
|
93
|
-
void IO_Event_Interrupt_add(IO_Event_Interrupt *interrupt, struct IO_Event_Selector_EPoll *data) {
|
95
|
+
void IO_Event_Interrupt_add(struct IO_Event_Interrupt *interrupt, struct IO_Event_Selector_EPoll *data) {
|
94
96
|
int descriptor = IO_Event_Interrupt_descriptor(interrupt);
|
95
97
|
|
96
98
|
struct epoll_event event = {
|
97
99
|
.events = EPOLLIN|EPOLLRDHUP,
|
98
|
-
.data = {.ptr = NULL
|
100
|
+
.data = {.ptr = NULL},
|
99
101
|
};
|
100
102
|
|
101
103
|
int result = epoll_ctl(data->descriptor, EPOLL_CTL_ADD, descriptor, &event);
|
@@ -557,40 +559,43 @@ VALUE IO_Event_Selector_EPoll_select(VALUE self, VALUE duration) {
|
|
557
559
|
.timeout = 0
|
558
560
|
};
|
559
561
|
|
562
|
+
// Process any currently pending events:
|
560
563
|
select_internal_with_gvl(&arguments);
|
561
|
-
|
562
|
-
// If the ready list was empty and no events were processed:
|
564
|
+
|
565
|
+
// If the ready list was empty and no events were processed:
|
563
566
|
if (!ready && arguments.count == 0) {
|
564
567
|
arguments.timeout = make_timeout(duration);
|
565
568
|
|
566
569
|
if (arguments.timeout != 0) {
|
570
|
+
// Wait for events to occur
|
567
571
|
select_internal_without_gvl(&arguments);
|
568
572
|
}
|
569
573
|
}
|
570
574
|
|
571
575
|
for (int i = 0; i < arguments.count; i += 1) {
|
572
|
-
|
573
|
-
|
576
|
+
const struct epoll_event *event = &arguments.events[i];
|
577
|
+
if (DEBUG) fprintf(stderr, "-> ptr=%p events=%d\n", event->data.ptr, event->events);
|
574
578
|
|
575
|
-
if (
|
579
|
+
if (event->data.ptr) {
|
580
|
+
VALUE fiber = (VALUE)event->data.ptr;
|
581
|
+
VALUE result = INT2NUM(event->events);
|
582
|
+
|
583
|
+
IO_Event_Selector_fiber_transfer(fiber, 1, &result);
|
584
|
+
} else {
|
576
585
|
IO_Event_Interrupt_clear(&data->interrupt);
|
577
586
|
}
|
578
|
-
|
579
|
-
// fprintf(stderr, "-> fiber=%p descriptor=%d\n", (void*)fiber, events[i].data.fd);
|
580
|
-
|
581
|
-
IO_Event_Selector_fiber_transfer(fiber, 1, &result);
|
582
587
|
}
|
583
588
|
|
584
589
|
return INT2NUM(arguments.count);
|
585
590
|
}
|
586
591
|
|
587
|
-
VALUE
|
592
|
+
VALUE IO_Event_Selector_EPoll_wakeup(VALUE self) {
|
588
593
|
struct IO_Event_Selector_EPoll *data = NULL;
|
589
594
|
TypedData_Get_Struct(self, struct IO_Event_Selector_EPoll, &IO_Event_Selector_EPoll_Type, data);
|
590
595
|
|
591
596
|
// If we are blocking, we can schedule a nop event to wake up the selector:
|
592
597
|
if (data->blocked) {
|
593
|
-
IO_Event_Interrupt_signal(data->interrupt);
|
598
|
+
IO_Event_Interrupt_signal(&data->interrupt);
|
594
599
|
|
595
600
|
return Qtrue;
|
596
601
|
}
|
@@ -35,6 +35,7 @@ struct IO_Event_Selector_KQueue {
|
|
35
35
|
int descriptor;
|
36
36
|
|
37
37
|
int blocked;
|
38
|
+
int wakeup;
|
38
39
|
};
|
39
40
|
|
40
41
|
void IO_Event_Selector_KQueue_Type_mark(void *_data)
|
@@ -572,6 +573,13 @@ void * select_internal(void *_arguments) {
|
|
572
573
|
static
|
573
574
|
void select_internal_without_gvl(struct select_arguments *arguments) {
|
574
575
|
arguments->data->blocked = 1;
|
576
|
+
|
577
|
+
if (arguments->data->wakeup) {
|
578
|
+
arguments->data->wakeup = 0;
|
579
|
+
arguments->count = 0;
|
580
|
+
return;
|
581
|
+
}
|
582
|
+
|
575
583
|
rb_thread_call_without_gvl(select_internal, (void *)arguments, RUBY_UBF_IO, 0);
|
576
584
|
arguments->data->blocked = 0;
|
577
585
|
|
@@ -604,12 +612,13 @@ VALUE IO_Event_Selector_KQueue_select(VALUE self, VALUE duration) {
|
|
604
612
|
}
|
605
613
|
};
|
606
614
|
|
615
|
+
arguments.timeout = &arguments.storage;
|
616
|
+
|
607
617
|
// We break this implementation into two parts.
|
608
618
|
// (1) count = kevent(..., timeout = 0)
|
609
619
|
// (2) without gvl: kevent(..., timeout = 0) if count == 0 and timeout != 0
|
610
620
|
// This allows us to avoid releasing and reacquiring the GVL.
|
611
621
|
// Non-comprehensive testing shows this gives a 1.5x speedup.
|
612
|
-
arguments.timeout = &arguments.storage;
|
613
622
|
|
614
623
|
// First do the syscall with no timeout to get any immediately available events:
|
615
624
|
select_internal_with_gvl(&arguments);
|
@@ -641,6 +650,11 @@ VALUE IO_Event_Selector_KQueue_wakeup(VALUE self) {
|
|
641
650
|
struct IO_Event_Selector_KQueue *data = NULL;
|
642
651
|
TypedData_Get_Struct(self, struct IO_Event_Selector_KQueue, &IO_Event_Selector_KQueue_Type, data);
|
643
652
|
|
653
|
+
// If we are already schduled to wake up, don't bother doing it again!
|
654
|
+
if (data->wakeup) return Qfalse;
|
655
|
+
|
656
|
+
data->wakeup = 1;
|
657
|
+
|
644
658
|
if (data->blocked) {
|
645
659
|
struct kevent trigger = {0};
|
646
660
|
|
@@ -26,7 +26,6 @@
|
|
26
26
|
#include <time.h>
|
27
27
|
|
28
28
|
#include "pidfd.c"
|
29
|
-
#include "../interrupt.h"
|
30
29
|
|
31
30
|
static const int DEBUG = 0;
|
32
31
|
|
@@ -561,7 +560,7 @@ int select_internal_without_gvl(struct select_arguments *arguments) {
|
|
561
560
|
return arguments->result;
|
562
561
|
}
|
563
562
|
|
564
|
-
#define IO_EVENT_SELECTOR_URING_UDATA_INTERRUPT ((__u64) -2)
|
563
|
+
// #define IO_EVENT_SELECTOR_URING_UDATA_INTERRUPT ((__u64) -2)
|
565
564
|
|
566
565
|
static inline
|
567
566
|
unsigned select_process_completions(struct io_uring *ring) {
|
@@ -578,10 +577,9 @@ unsigned select_process_completions(struct io_uring *ring) {
|
|
578
577
|
continue;
|
579
578
|
}
|
580
579
|
|
581
|
-
if (cqe->user_data == IO_EVENT_SELECTOR_URING_UDATA_INTERRUPT) {
|
582
|
-
|
583
|
-
|
584
|
-
}
|
580
|
+
// if (cqe->user_data == IO_EVENT_SELECTOR_URING_UDATA_INTERRUPT) {
|
581
|
+
// io_uring_cq_advance(ring, 1);
|
582
|
+
// }
|
585
583
|
|
586
584
|
VALUE fiber = (VALUE)cqe->user_data;
|
587
585
|
VALUE result = RB_INT2NUM(cqe->res);
|
@@ -634,8 +632,8 @@ VALUE IO_Event_Selector_URing_select(VALUE self, VALUE duration) {
|
|
634
632
|
}
|
635
633
|
|
636
634
|
VALUE IO_Event_Selector_URing_wakeup(VALUE self) {
|
637
|
-
struct
|
638
|
-
TypedData_Get_Struct(self, struct
|
635
|
+
struct IO_Event_Selector_URing *data = NULL;
|
636
|
+
TypedData_Get_Struct(self, struct IO_Event_Selector_URing, &IO_Event_Selector_URing_Type, data);
|
639
637
|
|
640
638
|
// If we are blocking, we can schedule a nop event to wake up the selector:
|
641
639
|
if (data->blocked) {
|
@@ -652,7 +650,7 @@ VALUE IO_Event_Selector_URing_wakeup(VALUE self) {
|
|
652
650
|
}
|
653
651
|
|
654
652
|
io_uring_prep_nop(sqe);
|
655
|
-
io_uring_submit(&
|
653
|
+
io_uring_submit(&data->ring);
|
656
654
|
|
657
655
|
return Qtrue;
|
658
656
|
}
|
@@ -667,7 +665,7 @@ void Init_IO_Event_Selector_URing(VALUE IO_Event_Selector) {
|
|
667
665
|
rb_define_alloc_func(IO_Event_Selector_URing, IO_Event_Selector_URing_allocate);
|
668
666
|
rb_define_method(IO_Event_Selector_URing, "initialize", IO_Event_Selector_URing_initialize, 1);
|
669
667
|
|
670
|
-
rb_define_method(IO_Event_Selector_URing, "loop", IO_Event_Selector_URing_loop,
|
668
|
+
rb_define_method(IO_Event_Selector_URing, "loop", IO_Event_Selector_URing_loop, 0);
|
671
669
|
|
672
670
|
rb_define_method(IO_Event_Selector_URing, "transfer", IO_Event_Selector_URing_transfer, 0);
|
673
671
|
rb_define_method(IO_Event_Selector_URing, "resume", IO_Event_Selector_URing_resume, -1);
|
data/ext/mkmf.log
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
have_func: checking for rb_ext_ractor_safe()... -------------------- yes
|
2
2
|
|
3
|
-
"
|
3
|
+
"gcc -o conftest -I/home/samuel/.rubies/ruby-3.0.3/include/ruby-3.0.0/x86_64-linux -I/home/samuel/.rubies/ruby-3.0.3/include/ruby-3.0.0/ruby/backward -I/home/samuel/.rubies/ruby-3.0.3/include/ruby-3.0.0 -I. -O3 -ggdb3 -Wall -Wextra -Wdeprecated-declarations -Wduplicated-cond -Wimplicit-function-declaration -Wimplicit-int -Wmisleading-indentation -Wpointer-arith -Wwrite-strings -Wimplicit-fallthrough=0 -Wmissing-noreturn -Wno-cast-function-type -Wno-constant-logical-operand -Wno-long-long -Wno-missing-field-initializers -Wno-overlength-strings -Wno-packed-bitfield-compat -Wno-parentheses-equality -Wno-self-assign -Wno-tautological-compare -Wno-unused-parameter -Wno-unused-value -Wsuggest-attribute=format -Wsuggest-attribute=noreturn -Wunused-variable -Wall conftest.c -L. -L/home/samuel/.rubies/ruby-3.0.3/lib -Wl,-rpath,/home/samuel/.rubies/ruby-3.0.3/lib -L. -fstack-protector-strong -rdynamic -Wl,-export-dynamic -Wl,-rpath,/home/samuel/.rubies/ruby-3.0.3/lib -L/home/samuel/.rubies/ruby-3.0.3/lib -lruby-static -lz -lpthread -lrt -lrt -lgmp -ldl -lcrypt -lm -lm -lc"
|
4
4
|
checked program was:
|
5
5
|
/* begin */
|
6
6
|
1: #include "ruby.h"
|
@@ -11,7 +11,7 @@ checked program was:
|
|
11
11
|
6: }
|
12
12
|
/* end */
|
13
13
|
|
14
|
-
"
|
14
|
+
"gcc -o conftest -I/home/samuel/.rubies/ruby-3.0.3/include/ruby-3.0.0/x86_64-linux -I/home/samuel/.rubies/ruby-3.0.3/include/ruby-3.0.0/ruby/backward -I/home/samuel/.rubies/ruby-3.0.3/include/ruby-3.0.0 -I. -O3 -ggdb3 -Wall -Wextra -Wdeprecated-declarations -Wduplicated-cond -Wimplicit-function-declaration -Wimplicit-int -Wmisleading-indentation -Wpointer-arith -Wwrite-strings -Wimplicit-fallthrough=0 -Wmissing-noreturn -Wno-cast-function-type -Wno-constant-logical-operand -Wno-long-long -Wno-missing-field-initializers -Wno-overlength-strings -Wno-packed-bitfield-compat -Wno-parentheses-equality -Wno-self-assign -Wno-tautological-compare -Wno-unused-parameter -Wno-unused-value -Wsuggest-attribute=format -Wsuggest-attribute=noreturn -Wunused-variable -Wall conftest.c -L. -L/home/samuel/.rubies/ruby-3.0.3/lib -Wl,-rpath,/home/samuel/.rubies/ruby-3.0.3/lib -L. -fstack-protector-strong -rdynamic -Wl,-export-dynamic -Wl,-rpath,/home/samuel/.rubies/ruby-3.0.3/lib -L/home/samuel/.rubies/ruby-3.0.3/lib -lruby-static -lz -lpthread -lrt -lrt -lgmp -ldl -lcrypt -lm -lm -lc"
|
15
15
|
checked program was:
|
16
16
|
/* begin */
|
17
17
|
1: #include "ruby.h"
|
@@ -34,11 +34,17 @@ checked program was:
|
|
34
34
|
|
35
35
|
have_func: checking for &rb_fiber_transfer()... -------------------- no
|
36
36
|
|
37
|
-
"
|
38
|
-
conftest.c:
|
39
|
-
|
40
|
-
|
41
|
-
|
37
|
+
"gcc -o conftest -I/home/samuel/.rubies/ruby-3.0.3/include/ruby-3.0.0/x86_64-linux -I/home/samuel/.rubies/ruby-3.0.3/include/ruby-3.0.0/ruby/backward -I/home/samuel/.rubies/ruby-3.0.3/include/ruby-3.0.0 -I. -O3 -ggdb3 -Wall -Wextra -Wdeprecated-declarations -Wduplicated-cond -Wimplicit-function-declaration -Wimplicit-int -Wmisleading-indentation -Wpointer-arith -Wwrite-strings -Wimplicit-fallthrough=0 -Wmissing-noreturn -Wno-cast-function-type -Wno-constant-logical-operand -Wno-long-long -Wno-missing-field-initializers -Wno-overlength-strings -Wno-packed-bitfield-compat -Wno-parentheses-equality -Wno-self-assign -Wno-tautological-compare -Wno-unused-parameter -Wno-unused-value -Wsuggest-attribute=format -Wsuggest-attribute=noreturn -Wunused-variable -Wall conftest.c -L. -L/home/samuel/.rubies/ruby-3.0.3/lib -Wl,-rpath,/home/samuel/.rubies/ruby-3.0.3/lib -L. -fstack-protector-strong -rdynamic -Wl,-export-dynamic -Wl,-rpath,/home/samuel/.rubies/ruby-3.0.3/lib -L/home/samuel/.rubies/ruby-3.0.3/lib -lruby-static -lz -lpthread -lrt -lrt -lgmp -ldl -lcrypt -lm -lm -lc"
|
38
|
+
conftest.c: In function ‘t’:
|
39
|
+
conftest.c:14:76: error: ‘rb_fiber_transfer’ undeclared (first use in this function); did you mean ‘rb_fiber_resume’?
|
40
|
+
14 | int t(void) { const volatile void *volatile p; p = (const volatile void *)&rb_fiber_transfer; return !p; }
|
41
|
+
| ^~~~~~~~~~~~~~~~~
|
42
|
+
| rb_fiber_resume
|
43
|
+
conftest.c:14:76: note: each undeclared identifier is reported only once for each function it appears in
|
44
|
+
conftest.c: At top level:
|
45
|
+
cc1: note: unrecognized command-line option ‘-Wno-self-assign’ may have been intended to silence earlier diagnostics
|
46
|
+
cc1: note: unrecognized command-line option ‘-Wno-parentheses-equality’ may have been intended to silence earlier diagnostics
|
47
|
+
cc1: note: unrecognized command-line option ‘-Wno-constant-logical-operand’ may have been intended to silence earlier diagnostics
|
42
48
|
checked program was:
|
43
49
|
/* begin */
|
44
50
|
1: #include "ruby.h"
|
@@ -59,11 +65,9 @@ checked program was:
|
|
59
65
|
|
60
66
|
--------------------
|
61
67
|
|
62
|
-
have_library: checking for -luring... --------------------
|
68
|
+
have_library: checking for -luring... -------------------- yes
|
63
69
|
|
64
|
-
"
|
65
|
-
ld: library not found for -luring
|
66
|
-
clang: error: linker command failed with exit code 1 (use -v to see invocation)
|
70
|
+
"gcc -o conftest -I/home/samuel/.rubies/ruby-3.0.3/include/ruby-3.0.0/x86_64-linux -I/home/samuel/.rubies/ruby-3.0.3/include/ruby-3.0.0/ruby/backward -I/home/samuel/.rubies/ruby-3.0.3/include/ruby-3.0.0 -I. -O3 -ggdb3 -Wall -Wextra -Wdeprecated-declarations -Wduplicated-cond -Wimplicit-function-declaration -Wimplicit-int -Wmisleading-indentation -Wpointer-arith -Wwrite-strings -Wimplicit-fallthrough=0 -Wmissing-noreturn -Wno-cast-function-type -Wno-constant-logical-operand -Wno-long-long -Wno-missing-field-initializers -Wno-overlength-strings -Wno-packed-bitfield-compat -Wno-parentheses-equality -Wno-self-assign -Wno-tautological-compare -Wno-unused-parameter -Wno-unused-value -Wsuggest-attribute=format -Wsuggest-attribute=noreturn -Wunused-variable -Wall conftest.c -L. -L/home/samuel/.rubies/ruby-3.0.3/lib -Wl,-rpath,/home/samuel/.rubies/ruby-3.0.3/lib -L. -fstack-protector-strong -rdynamic -Wl,-export-dynamic -Wl,-rpath,/home/samuel/.rubies/ruby-3.0.3/lib -L/home/samuel/.rubies/ruby-3.0.3/lib -lruby-static -lz -lpthread -lrt -lrt -lgmp -ldl -lcrypt -lm -luring -lm -lc"
|
67
71
|
checked program was:
|
68
72
|
/* begin */
|
69
73
|
1: #include "ruby.h"
|
@@ -85,13 +89,21 @@ checked program was:
|
|
85
89
|
|
86
90
|
--------------------
|
87
91
|
|
88
|
-
have_header: checking for
|
92
|
+
have_header: checking for liburing.h... -------------------- yes
|
89
93
|
|
90
|
-
"
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
94
|
+
"gcc -E -I/home/samuel/.rubies/ruby-3.0.3/include/ruby-3.0.0/x86_64-linux -I/home/samuel/.rubies/ruby-3.0.3/include/ruby-3.0.0/ruby/backward -I/home/samuel/.rubies/ruby-3.0.3/include/ruby-3.0.0 -I. -O3 -ggdb3 -Wall -Wextra -Wdeprecated-declarations -Wduplicated-cond -Wimplicit-function-declaration -Wimplicit-int -Wmisleading-indentation -Wpointer-arith -Wwrite-strings -Wimplicit-fallthrough=0 -Wmissing-noreturn -Wno-cast-function-type -Wno-constant-logical-operand -Wno-long-long -Wno-missing-field-initializers -Wno-overlength-strings -Wno-packed-bitfield-compat -Wno-parentheses-equality -Wno-self-assign -Wno-tautological-compare -Wno-unused-parameter -Wno-unused-value -Wsuggest-attribute=format -Wsuggest-attribute=noreturn -Wunused-variable -Wall conftest.c -o conftest.i"
|
95
|
+
checked program was:
|
96
|
+
/* begin */
|
97
|
+
1: #include "ruby.h"
|
98
|
+
2:
|
99
|
+
3: #include <liburing.h>
|
100
|
+
/* end */
|
101
|
+
|
102
|
+
--------------------
|
103
|
+
|
104
|
+
have_header: checking for sys/epoll.h... -------------------- yes
|
105
|
+
|
106
|
+
"gcc -E -I/home/samuel/.rubies/ruby-3.0.3/include/ruby-3.0.0/x86_64-linux -I/home/samuel/.rubies/ruby-3.0.3/include/ruby-3.0.0/ruby/backward -I/home/samuel/.rubies/ruby-3.0.3/include/ruby-3.0.0 -I. -O3 -ggdb3 -Wall -Wextra -Wdeprecated-declarations -Wduplicated-cond -Wimplicit-function-declaration -Wimplicit-int -Wmisleading-indentation -Wpointer-arith -Wwrite-strings -Wimplicit-fallthrough=0 -Wmissing-noreturn -Wno-cast-function-type -Wno-constant-logical-operand -Wno-long-long -Wno-missing-field-initializers -Wno-overlength-strings -Wno-packed-bitfield-compat -Wno-parentheses-equality -Wno-self-assign -Wno-tautological-compare -Wno-unused-parameter -Wno-unused-value -Wsuggest-attribute=format -Wsuggest-attribute=noreturn -Wunused-variable -Wall conftest.c -o conftest.i"
|
95
107
|
checked program was:
|
96
108
|
/* begin */
|
97
109
|
1: #include "ruby.h"
|
@@ -101,9 +113,13 @@ checked program was:
|
|
101
113
|
|
102
114
|
--------------------
|
103
115
|
|
104
|
-
have_header: checking for sys/event.h... --------------------
|
116
|
+
have_header: checking for sys/event.h... -------------------- no
|
105
117
|
|
106
|
-
"
|
118
|
+
"gcc -E -I/home/samuel/.rubies/ruby-3.0.3/include/ruby-3.0.0/x86_64-linux -I/home/samuel/.rubies/ruby-3.0.3/include/ruby-3.0.0/ruby/backward -I/home/samuel/.rubies/ruby-3.0.3/include/ruby-3.0.0 -I. -O3 -ggdb3 -Wall -Wextra -Wdeprecated-declarations -Wduplicated-cond -Wimplicit-function-declaration -Wimplicit-int -Wmisleading-indentation -Wpointer-arith -Wwrite-strings -Wimplicit-fallthrough=0 -Wmissing-noreturn -Wno-cast-function-type -Wno-constant-logical-operand -Wno-long-long -Wno-missing-field-initializers -Wno-overlength-strings -Wno-packed-bitfield-compat -Wno-parentheses-equality -Wno-self-assign -Wno-tautological-compare -Wno-unused-parameter -Wno-unused-value -Wsuggest-attribute=format -Wsuggest-attribute=noreturn -Wunused-variable -Wall conftest.c -o conftest.i"
|
119
|
+
conftest.c:3:10: fatal error: sys/event.h: No such file or directory
|
120
|
+
3 | #include <sys/event.h>
|
121
|
+
| ^~~~~~~~~~~~~
|
122
|
+
compilation terminated.
|
107
123
|
checked program was:
|
108
124
|
/* begin */
|
109
125
|
1: #include "ruby.h"
|
@@ -113,13 +129,9 @@ checked program was:
|
|
113
129
|
|
114
130
|
--------------------
|
115
131
|
|
116
|
-
have_header: checking for sys/eventfd.h... --------------------
|
132
|
+
have_header: checking for sys/eventfd.h... -------------------- yes
|
117
133
|
|
118
|
-
"
|
119
|
-
conftest.c:3:10: fatal error: 'sys/eventfd.h' file not found
|
120
|
-
#include <sys/eventfd.h>
|
121
|
-
^~~~~~~~~~~~~~~
|
122
|
-
1 error generated.
|
134
|
+
"gcc -E -I/home/samuel/.rubies/ruby-3.0.3/include/ruby-3.0.0/x86_64-linux -I/home/samuel/.rubies/ruby-3.0.3/include/ruby-3.0.0/ruby/backward -I/home/samuel/.rubies/ruby-3.0.3/include/ruby-3.0.0 -I. -O3 -ggdb3 -Wall -Wextra -Wdeprecated-declarations -Wduplicated-cond -Wimplicit-function-declaration -Wimplicit-int -Wmisleading-indentation -Wpointer-arith -Wwrite-strings -Wimplicit-fallthrough=0 -Wmissing-noreturn -Wno-cast-function-type -Wno-constant-logical-operand -Wno-long-long -Wno-missing-field-initializers -Wno-overlength-strings -Wno-packed-bitfield-compat -Wno-parentheses-equality -Wno-self-assign -Wno-tautological-compare -Wno-unused-parameter -Wno-unused-value -Wsuggest-attribute=format -Wsuggest-attribute=noreturn -Wunused-variable -Wall conftest.c -o conftest.i"
|
123
135
|
checked program was:
|
124
136
|
/* begin */
|
125
137
|
1: #include "ruby.h"
|
@@ -131,11 +143,16 @@ checked program was:
|
|
131
143
|
|
132
144
|
have_func: checking for rb_io_descriptor()... -------------------- no
|
133
145
|
|
134
|
-
"
|
135
|
-
conftest.c:
|
136
|
-
|
137
|
-
|
138
|
-
|
146
|
+
"gcc -o conftest -I/home/samuel/.rubies/ruby-3.0.3/include/ruby-3.0.0/x86_64-linux -I/home/samuel/.rubies/ruby-3.0.3/include/ruby-3.0.0/ruby/backward -I/home/samuel/.rubies/ruby-3.0.3/include/ruby-3.0.0 -I. -O3 -ggdb3 -Wall -Wextra -Wdeprecated-declarations -Wduplicated-cond -Wimplicit-function-declaration -Wimplicit-int -Wmisleading-indentation -Wpointer-arith -Wwrite-strings -Wimplicit-fallthrough=0 -Wmissing-noreturn -Wno-cast-function-type -Wno-constant-logical-operand -Wno-long-long -Wno-missing-field-initializers -Wno-overlength-strings -Wno-packed-bitfield-compat -Wno-parentheses-equality -Wno-self-assign -Wno-tautological-compare -Wno-unused-parameter -Wno-unused-value -Wsuggest-attribute=format -Wsuggest-attribute=noreturn -Wunused-variable -Wall conftest.c -L. -L/home/samuel/.rubies/ruby-3.0.3/lib -Wl,-rpath,/home/samuel/.rubies/ruby-3.0.3/lib -L. -fstack-protector-strong -rdynamic -Wl,-export-dynamic -luring -Wl,-rpath,/home/samuel/.rubies/ruby-3.0.3/lib -L/home/samuel/.rubies/ruby-3.0.3/lib -lruby-static -lz -lpthread -lrt -lrt -lgmp -ldl -lcrypt -lm -luring -lm -lc"
|
147
|
+
conftest.c: In function ‘t’:
|
148
|
+
conftest.c:14:57: error: ‘rb_io_descriptor’ undeclared (first use in this function)
|
149
|
+
14 | int t(void) { void ((*volatile p)()); p = (void ((*)()))rb_io_descriptor; return !p; }
|
150
|
+
| ^~~~~~~~~~~~~~~~
|
151
|
+
conftest.c:14:57: note: each undeclared identifier is reported only once for each function it appears in
|
152
|
+
conftest.c: At top level:
|
153
|
+
cc1: note: unrecognized command-line option ‘-Wno-self-assign’ may have been intended to silence earlier diagnostics
|
154
|
+
cc1: note: unrecognized command-line option ‘-Wno-parentheses-equality’ may have been intended to silence earlier diagnostics
|
155
|
+
cc1: note: unrecognized command-line option ‘-Wno-constant-logical-operand’ may have been intended to silence earlier diagnostics
|
139
156
|
checked program was:
|
140
157
|
/* begin */
|
141
158
|
1: #include "ruby.h"
|
@@ -154,12 +171,10 @@ checked program was:
|
|
154
171
|
14: int t(void) { void ((*volatile p)()); p = (void ((*)()))rb_io_descriptor; return !p; }
|
155
172
|
/* end */
|
156
173
|
|
157
|
-
"
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
ld: symbol(s) not found for architecture arm64
|
162
|
-
clang: error: linker command failed with exit code 1 (use -v to see invocation)
|
174
|
+
"gcc -o conftest -I/home/samuel/.rubies/ruby-3.0.3/include/ruby-3.0.0/x86_64-linux -I/home/samuel/.rubies/ruby-3.0.3/include/ruby-3.0.0/ruby/backward -I/home/samuel/.rubies/ruby-3.0.3/include/ruby-3.0.0 -I. -O3 -ggdb3 -Wall -Wextra -Wdeprecated-declarations -Wduplicated-cond -Wimplicit-function-declaration -Wimplicit-int -Wmisleading-indentation -Wpointer-arith -Wwrite-strings -Wimplicit-fallthrough=0 -Wmissing-noreturn -Wno-cast-function-type -Wno-constant-logical-operand -Wno-long-long -Wno-missing-field-initializers -Wno-overlength-strings -Wno-packed-bitfield-compat -Wno-parentheses-equality -Wno-self-assign -Wno-tautological-compare -Wno-unused-parameter -Wno-unused-value -Wsuggest-attribute=format -Wsuggest-attribute=noreturn -Wunused-variable -Wall conftest.c -L. -L/home/samuel/.rubies/ruby-3.0.3/lib -Wl,-rpath,/home/samuel/.rubies/ruby-3.0.3/lib -L. -fstack-protector-strong -rdynamic -Wl,-export-dynamic -luring -Wl,-rpath,/home/samuel/.rubies/ruby-3.0.3/lib -L/home/samuel/.rubies/ruby-3.0.3/lib -lruby-static -lz -lpthread -lrt -lrt -lgmp -ldl -lcrypt -lm -luring -lm -lc"
|
175
|
+
/usr/bin/ld: /tmp/cc0gnp4R.o: in function `t':
|
176
|
+
/home/samuel/Projects/socketry/io-event/ext/conftest.c:15: undefined reference to `rb_io_descriptor'
|
177
|
+
collect2: error: ld returned 1 exit status
|
163
178
|
checked program was:
|
164
179
|
/* begin */
|
165
180
|
1: #include "ruby.h"
|
@@ -183,11 +198,16 @@ checked program was:
|
|
183
198
|
|
184
199
|
have_func: checking for &rb_process_status_wait()... -------------------- no
|
185
200
|
|
186
|
-
"
|
187
|
-
conftest.c:
|
188
|
-
|
189
|
-
|
190
|
-
|
201
|
+
"gcc -o conftest -I/home/samuel/.rubies/ruby-3.0.3/include/ruby-3.0.0/x86_64-linux -I/home/samuel/.rubies/ruby-3.0.3/include/ruby-3.0.0/ruby/backward -I/home/samuel/.rubies/ruby-3.0.3/include/ruby-3.0.0 -I. -O3 -ggdb3 -Wall -Wextra -Wdeprecated-declarations -Wduplicated-cond -Wimplicit-function-declaration -Wimplicit-int -Wmisleading-indentation -Wpointer-arith -Wwrite-strings -Wimplicit-fallthrough=0 -Wmissing-noreturn -Wno-cast-function-type -Wno-constant-logical-operand -Wno-long-long -Wno-missing-field-initializers -Wno-overlength-strings -Wno-packed-bitfield-compat -Wno-parentheses-equality -Wno-self-assign -Wno-tautological-compare -Wno-unused-parameter -Wno-unused-value -Wsuggest-attribute=format -Wsuggest-attribute=noreturn -Wunused-variable -Wall conftest.c -L. -L/home/samuel/.rubies/ruby-3.0.3/lib -Wl,-rpath,/home/samuel/.rubies/ruby-3.0.3/lib -L. -fstack-protector-strong -rdynamic -Wl,-export-dynamic -luring -Wl,-rpath,/home/samuel/.rubies/ruby-3.0.3/lib -L/home/samuel/.rubies/ruby-3.0.3/lib -lruby-static -lz -lpthread -lrt -lrt -lgmp -ldl -lcrypt -lm -luring -lm -lc"
|
202
|
+
conftest.c: In function ‘t’:
|
203
|
+
conftest.c:14:76: error: ‘rb_process_status_wait’ undeclared (first use in this function)
|
204
|
+
14 | int t(void) { const volatile void *volatile p; p = (const volatile void *)&rb_process_status_wait; return !p; }
|
205
|
+
| ^~~~~~~~~~~~~~~~~~~~~~
|
206
|
+
conftest.c:14:76: note: each undeclared identifier is reported only once for each function it appears in
|
207
|
+
conftest.c: At top level:
|
208
|
+
cc1: note: unrecognized command-line option ‘-Wno-self-assign’ may have been intended to silence earlier diagnostics
|
209
|
+
cc1: note: unrecognized command-line option ‘-Wno-parentheses-equality’ may have been intended to silence earlier diagnostics
|
210
|
+
cc1: note: unrecognized command-line option ‘-Wno-constant-logical-operand’ may have been intended to silence earlier diagnostics
|
191
211
|
checked program was:
|
192
212
|
/* begin */
|
193
213
|
1: #include "ruby.h"
|
@@ -210,7 +230,7 @@ checked program was:
|
|
210
230
|
|
211
231
|
have_func: checking for rb_fiber_current()... -------------------- yes
|
212
232
|
|
213
|
-
"
|
233
|
+
"gcc -o conftest -I/home/samuel/.rubies/ruby-3.0.3/include/ruby-3.0.0/x86_64-linux -I/home/samuel/.rubies/ruby-3.0.3/include/ruby-3.0.0/ruby/backward -I/home/samuel/.rubies/ruby-3.0.3/include/ruby-3.0.0 -I. -O3 -ggdb3 -Wall -Wextra -Wdeprecated-declarations -Wduplicated-cond -Wimplicit-function-declaration -Wimplicit-int -Wmisleading-indentation -Wpointer-arith -Wwrite-strings -Wimplicit-fallthrough=0 -Wmissing-noreturn -Wno-cast-function-type -Wno-constant-logical-operand -Wno-long-long -Wno-missing-field-initializers -Wno-overlength-strings -Wno-packed-bitfield-compat -Wno-parentheses-equality -Wno-self-assign -Wno-tautological-compare -Wno-unused-parameter -Wno-unused-value -Wsuggest-attribute=format -Wsuggest-attribute=noreturn -Wunused-variable -Wall conftest.c -L. -L/home/samuel/.rubies/ruby-3.0.3/lib -Wl,-rpath,/home/samuel/.rubies/ruby-3.0.3/lib -L. -fstack-protector-strong -rdynamic -Wl,-export-dynamic -luring -Wl,-rpath,/home/samuel/.rubies/ruby-3.0.3/lib -L/home/samuel/.rubies/ruby-3.0.3/lib -lruby-static -lz -lpthread -lrt -lrt -lgmp -ldl -lcrypt -lm -luring -lm -lc"
|
214
234
|
checked program was:
|
215
235
|
/* begin */
|
216
236
|
1: #include "ruby.h"
|
@@ -233,15 +253,17 @@ checked program was:
|
|
233
253
|
|
234
254
|
have_func: checking for &rb_fiber_raise()... -------------------- no
|
235
255
|
|
236
|
-
"
|
237
|
-
conftest.c:
|
238
|
-
|
239
|
-
|
240
|
-
|
241
|
-
|
242
|
-
|
243
|
-
|
244
|
-
|
256
|
+
"gcc -o conftest -I/home/samuel/.rubies/ruby-3.0.3/include/ruby-3.0.0/x86_64-linux -I/home/samuel/.rubies/ruby-3.0.3/include/ruby-3.0.0/ruby/backward -I/home/samuel/.rubies/ruby-3.0.3/include/ruby-3.0.0 -I. -O3 -ggdb3 -Wall -Wextra -Wdeprecated-declarations -Wduplicated-cond -Wimplicit-function-declaration -Wimplicit-int -Wmisleading-indentation -Wpointer-arith -Wwrite-strings -Wimplicit-fallthrough=0 -Wmissing-noreturn -Wno-cast-function-type -Wno-constant-logical-operand -Wno-long-long -Wno-missing-field-initializers -Wno-overlength-strings -Wno-packed-bitfield-compat -Wno-parentheses-equality -Wno-self-assign -Wno-tautological-compare -Wno-unused-parameter -Wno-unused-value -Wsuggest-attribute=format -Wsuggest-attribute=noreturn -Wunused-variable -Wall conftest.c -L. -L/home/samuel/.rubies/ruby-3.0.3/lib -Wl,-rpath,/home/samuel/.rubies/ruby-3.0.3/lib -L. -fstack-protector-strong -rdynamic -Wl,-export-dynamic -luring -Wl,-rpath,/home/samuel/.rubies/ruby-3.0.3/lib -L/home/samuel/.rubies/ruby-3.0.3/lib -lruby-static -lz -lpthread -lrt -lrt -lgmp -ldl -lcrypt -lm -luring -lm -lc"
|
257
|
+
conftest.c: In function ‘t’:
|
258
|
+
conftest.c:14:76: error: ‘rb_fiber_raise’ undeclared (first use in this function); did you mean ‘rb_fiber_resume’?
|
259
|
+
14 | int t(void) { const volatile void *volatile p; p = (const volatile void *)&rb_fiber_raise; return !p; }
|
260
|
+
| ^~~~~~~~~~~~~~
|
261
|
+
| rb_fiber_resume
|
262
|
+
conftest.c:14:76: note: each undeclared identifier is reported only once for each function it appears in
|
263
|
+
conftest.c: At top level:
|
264
|
+
cc1: note: unrecognized command-line option ‘-Wno-self-assign’ may have been intended to silence earlier diagnostics
|
265
|
+
cc1: note: unrecognized command-line option ‘-Wno-parentheses-equality’ may have been intended to silence earlier diagnostics
|
266
|
+
cc1: note: unrecognized command-line option ‘-Wno-constant-logical-operand’ may have been intended to silence earlier diagnostics
|
245
267
|
checked program was:
|
246
268
|
/* begin */
|
247
269
|
1: #include "ruby.h"
|
@@ -264,12 +286,11 @@ checked program was:
|
|
264
286
|
|
265
287
|
have_header: checking for ruby/io/buffer.h... -------------------- no
|
266
288
|
|
267
|
-
"
|
268
|
-
conftest.c:3:10: fatal error:
|
269
|
-
#include <ruby/io/buffer.h>
|
270
|
-
|
271
|
-
|
272
|
-
1 error generated.
|
289
|
+
"gcc -E -I/home/samuel/.rubies/ruby-3.0.3/include/ruby-3.0.0/x86_64-linux -I/home/samuel/.rubies/ruby-3.0.3/include/ruby-3.0.0/ruby/backward -I/home/samuel/.rubies/ruby-3.0.3/include/ruby-3.0.0 -I. -O3 -ggdb3 -Wall -Wextra -Wdeprecated-declarations -Wduplicated-cond -Wimplicit-function-declaration -Wimplicit-int -Wmisleading-indentation -Wpointer-arith -Wwrite-strings -Wimplicit-fallthrough=0 -Wmissing-noreturn -Wno-cast-function-type -Wno-constant-logical-operand -Wno-long-long -Wno-missing-field-initializers -Wno-overlength-strings -Wno-packed-bitfield-compat -Wno-parentheses-equality -Wno-self-assign -Wno-tautological-compare -Wno-unused-parameter -Wno-unused-value -Wsuggest-attribute=format -Wsuggest-attribute=noreturn -Wunused-variable -Wall conftest.c -o conftest.i"
|
290
|
+
conftest.c:3:10: fatal error: ruby/io/buffer.h: No such file or directory
|
291
|
+
3 | #include <ruby/io/buffer.h>
|
292
|
+
| ^~~~~~~~~~~~~~~~~~
|
293
|
+
compilation terminated.
|
273
294
|
checked program was:
|
274
295
|
/* begin */
|
275
296
|
1: #include "ruby.h"
|
@@ -284,8 +305,10 @@ extconf.h is:
|
|
284
305
|
1: #ifndef EXTCONF_H
|
285
306
|
2: #define EXTCONF_H
|
286
307
|
3: #define HAVE_RB_EXT_RACTOR_SAFE 1
|
287
|
-
4: #define
|
288
|
-
5: #define
|
289
|
-
6: #
|
308
|
+
4: #define HAVE_LIBURING_H 1
|
309
|
+
5: #define HAVE_SYS_EPOLL_H 1
|
310
|
+
6: #define HAVE_SYS_EVENTFD_H 1
|
311
|
+
7: #define HAVE_RB_FIBER_CURRENT 1
|
312
|
+
8: #endif
|
290
313
|
/* end */
|
291
314
|
|
data/ext/selector.o
CHANGED
Binary file
|
data/ext/uring.o
ADDED
Binary file
|
@@ -37,10 +37,15 @@ module IO::Event
|
|
37
37
|
|
38
38
|
attr :loop
|
39
39
|
|
40
|
+
# If the event loop is currently blocked,
|
40
41
|
def wakeup
|
41
42
|
if @blocked
|
42
43
|
@interrupt.signal
|
44
|
+
|
45
|
+
return true
|
43
46
|
end
|
47
|
+
|
48
|
+
return false
|
44
49
|
end
|
45
50
|
|
46
51
|
def close
|
@@ -212,8 +217,8 @@ module IO::Event
|
|
212
217
|
duration = 0
|
213
218
|
end
|
214
219
|
|
215
|
-
# The GVL ensures this is sufficiently synchronised for `#wakeup` to work correctly.
|
216
220
|
@blocked = true
|
221
|
+
duration = 0 unless @ready.empty?
|
217
222
|
readable, writable, _ = ::IO.select(@readable.keys, @writable.keys, nil, duration)
|
218
223
|
@blocked = false
|
219
224
|
|
data/lib/io/event/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: io-event
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Samuel Williams
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-12-
|
11
|
+
date: 2021-12-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bake
|
@@ -53,19 +53,19 @@ dependencies:
|
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '0'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
|
-
name:
|
56
|
+
name: sus
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
59
|
- - "~>"
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version: '
|
61
|
+
version: '0.5'
|
62
62
|
type: :development
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
66
|
- - "~>"
|
67
67
|
- !ruby/object:Gem::Version
|
68
|
-
version: '
|
68
|
+
version: '0.5'
|
69
69
|
description:
|
70
70
|
email:
|
71
71
|
executables: []
|
@@ -73,8 +73,9 @@ extensions:
|
|
73
73
|
- ext/extconf.rb
|
74
74
|
extra_rdoc_files: []
|
75
75
|
files:
|
76
|
-
- ext/IO_Event.
|
76
|
+
- ext/IO_Event.so
|
77
77
|
- ext/Makefile
|
78
|
+
- ext/epoll.o
|
78
79
|
- ext/event.o
|
79
80
|
- ext/extconf.h
|
80
81
|
- ext/extconf.rb
|
@@ -92,9 +93,9 @@ files:
|
|
92
93
|
- ext/io/event/selector/selector.h
|
93
94
|
- ext/io/event/selector/uring.c
|
94
95
|
- ext/io/event/selector/uring.h
|
95
|
-
- ext/kqueue.o
|
96
96
|
- ext/mkmf.log
|
97
97
|
- ext/selector.o
|
98
|
+
- ext/uring.o
|
98
99
|
- lib/io/event.rb
|
99
100
|
- lib/io/event/debug/selector.rb
|
100
101
|
- lib/io/event/interrupt.rb
|
data/ext/IO_Event.bundle
DELETED
Binary file
|
data/ext/kqueue.o
DELETED
Binary file
|