event 0.6.0 → 0.8.2

Sign up to get free protection for your applications and to get access to all the features.
Binary file
data/ext/event/event.o DELETED
Binary file
data/ext/event/extconf.h DELETED
@@ -1,4 +0,0 @@
1
- #ifndef EXTCONF_H
2
- #define EXTCONF_H
3
- #define HAVE_SYS_EVENT_H 1
4
- #endif
data/ext/event/kqueue.o DELETED
Binary file
data/ext/event/mkmf.log DELETED
@@ -1,100 +0,0 @@
1
- have_func: checking for &rb_fiber_transfer()... -------------------- no
2
-
3
- "clang -fdeclspec -o conftest -I/Users/samuel/.rubies/ruby-3.0.1/include/ruby-3.0.0/x86_64-darwin20 -I/Users/samuel/.rubies/ruby-3.0.1/include/ruby-3.0.0/ruby/backward -I/Users/samuel/.rubies/ruby-3.0.1/include/ruby-3.0.0 -I. -I/opt/local/include -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -D_DARWIN_UNLIMITED_SELECT -D_REENTRANT -O3 -ggdb3 -Wall -Wextra -Wdeprecated-declarations -Wdivision-by-zero -Wimplicit-function-declaration -Wimplicit-int -Wmisleading-indentation -Wpointer-arith -Wshorten-64-to-32 -Wwrite-strings -Wmissing-noreturn -Wno-constant-logical-operand -Wno-long-long -Wno-missing-field-initializers -Wno-overlength-strings -Wno-parentheses-equality -Wno-self-assign -Wno-tautological-compare -Wno-unused-parameter -Wno-unused-value -Wunused-variable -Wextra-tokens -pipe -Wall conftest.c -L. -L/Users/samuel/.rubies/ruby-3.0.1/lib -L/opt/local/lib -L. -fstack-protector-strong -L/opt/local/lib -lruby.3.0-static -framework Security -framework Foundation -lpthread -lgmp -ldl -lobjc "
4
- checked program was:
5
- /* begin */
6
- 1: #include "ruby.h"
7
- 2:
8
- 3: int main(int argc, char **argv)
9
- 4: {
10
- 5: return !!argv[argc];
11
- 6: }
12
- /* end */
13
-
14
- "clang -fdeclspec -o conftest -I/Users/samuel/.rubies/ruby-3.0.1/include/ruby-3.0.0/x86_64-darwin20 -I/Users/samuel/.rubies/ruby-3.0.1/include/ruby-3.0.0/ruby/backward -I/Users/samuel/.rubies/ruby-3.0.1/include/ruby-3.0.0 -I. -I/opt/local/include -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -D_DARWIN_UNLIMITED_SELECT -D_REENTRANT -O3 -ggdb3 -Wall -Wextra -Wdeprecated-declarations -Wdivision-by-zero -Wimplicit-function-declaration -Wimplicit-int -Wmisleading-indentation -Wpointer-arith -Wshorten-64-to-32 -Wwrite-strings -Wmissing-noreturn -Wno-constant-logical-operand -Wno-long-long -Wno-missing-field-initializers -Wno-overlength-strings -Wno-parentheses-equality -Wno-self-assign -Wno-tautological-compare -Wno-unused-parameter -Wno-unused-value -Wunused-variable -Wextra-tokens -pipe -Wall conftest.c -L. -L/Users/samuel/.rubies/ruby-3.0.1/lib -L/opt/local/lib -L. -fstack-protector-strong -L/opt/local/lib -lruby.3.0-static -framework Security -framework Foundation -lpthread -lgmp -ldl -lobjc "
15
- conftest.c:14:76: error: use of undeclared identifier 'rb_fiber_transfer'
16
- int t(void) { const volatile void *volatile p; p = (const volatile void *)&rb_fiber_transfer; return !p; }
17
- ^
18
- 1 error generated.
19
- checked program was:
20
- /* begin */
21
- 1: #include "ruby.h"
22
- 2:
23
- 3: /*top*/
24
- 4: extern int t(void);
25
- 5: int main(int argc, char **argv)
26
- 6: {
27
- 7: if (argc > 1000000) {
28
- 8: int (* volatile tp)(void)=(int (*)(void))&t;
29
- 9: printf("%d", (*tp)());
30
- 10: }
31
- 11:
32
- 12: return !!argv[argc];
33
- 13: }
34
- 14: int t(void) { const volatile void *volatile p; p = (const volatile void *)&rb_fiber_transfer; return !p; }
35
- /* end */
36
-
37
- --------------------
38
-
39
- have_library: checking for -luring... -------------------- no
40
-
41
- "clang -fdeclspec -o conftest -I/Users/samuel/.rubies/ruby-3.0.1/include/ruby-3.0.0/x86_64-darwin20 -I/Users/samuel/.rubies/ruby-3.0.1/include/ruby-3.0.0/ruby/backward -I/Users/samuel/.rubies/ruby-3.0.1/include/ruby-3.0.0 -I. -I/opt/local/include -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -D_DARWIN_UNLIMITED_SELECT -D_REENTRANT -O3 -ggdb3 -Wall -Wextra -Wdeprecated-declarations -Wdivision-by-zero -Wimplicit-function-declaration -Wimplicit-int -Wmisleading-indentation -Wpointer-arith -Wshorten-64-to-32 -Wwrite-strings -Wmissing-noreturn -Wno-constant-logical-operand -Wno-long-long -Wno-missing-field-initializers -Wno-overlength-strings -Wno-parentheses-equality -Wno-self-assign -Wno-tautological-compare -Wno-unused-parameter -Wno-unused-value -Wunused-variable -Wextra-tokens -pipe -Wall conftest.c -L. -L/Users/samuel/.rubies/ruby-3.0.1/lib -L/opt/local/lib -L. -fstack-protector-strong -L/opt/local/lib -lruby.3.0-static -framework Security -framework Foundation -lpthread -lgmp -ldl -lobjc -luring "
42
- ld: library not found for -luring
43
- clang: error: linker command failed with exit code 1 (use -v to see invocation)
44
- checked program was:
45
- /* begin */
46
- 1: #include "ruby.h"
47
- 2:
48
- 3: /*top*/
49
- 4: extern int t(void);
50
- 5: int main(int argc, char **argv)
51
- 6: {
52
- 7: if (argc > 1000000) {
53
- 8: int (* volatile tp)(void)=(int (*)(void))&t;
54
- 9: printf("%d", (*tp)());
55
- 10: }
56
- 11:
57
- 12: return !!argv[argc];
58
- 13: }
59
- 14:
60
- 15: int t(void) { ; return 0; }
61
- /* end */
62
-
63
- --------------------
64
-
65
- have_header: checking for sys/epoll.h... -------------------- no
66
-
67
- "clang -E -I/Users/samuel/.rubies/ruby-3.0.1/include/ruby-3.0.0/x86_64-darwin20 -I/Users/samuel/.rubies/ruby-3.0.1/include/ruby-3.0.0/ruby/backward -I/Users/samuel/.rubies/ruby-3.0.1/include/ruby-3.0.0 -I. -I/opt/local/include -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -D_DARWIN_UNLIMITED_SELECT -D_REENTRANT -O3 -ggdb3 -Wall -Wextra -Wdeprecated-declarations -Wdivision-by-zero -Wimplicit-function-declaration -Wimplicit-int -Wmisleading-indentation -Wpointer-arith -Wshorten-64-to-32 -Wwrite-strings -Wmissing-noreturn -Wno-constant-logical-operand -Wno-long-long -Wno-missing-field-initializers -Wno-overlength-strings -Wno-parentheses-equality -Wno-self-assign -Wno-tautological-compare -Wno-unused-parameter -Wno-unused-value -Wunused-variable -Wextra-tokens -pipe -Wall conftest.c -o conftest.i"
68
- conftest.c:3:10: fatal error: 'sys/epoll.h' file not found
69
- #include <sys/epoll.h>
70
- ^~~~~~~~~~~~~
71
- 1 error generated.
72
- checked program was:
73
- /* begin */
74
- 1: #include "ruby.h"
75
- 2:
76
- 3: #include <sys/epoll.h>
77
- /* end */
78
-
79
- --------------------
80
-
81
- have_header: checking for sys/event.h... -------------------- yes
82
-
83
- "clang -E -I/Users/samuel/.rubies/ruby-3.0.1/include/ruby-3.0.0/x86_64-darwin20 -I/Users/samuel/.rubies/ruby-3.0.1/include/ruby-3.0.0/ruby/backward -I/Users/samuel/.rubies/ruby-3.0.1/include/ruby-3.0.0 -I. -I/opt/local/include -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -D_DARWIN_UNLIMITED_SELECT -D_REENTRANT -O3 -ggdb3 -Wall -Wextra -Wdeprecated-declarations -Wdivision-by-zero -Wimplicit-function-declaration -Wimplicit-int -Wmisleading-indentation -Wpointer-arith -Wshorten-64-to-32 -Wwrite-strings -Wmissing-noreturn -Wno-constant-logical-operand -Wno-long-long -Wno-missing-field-initializers -Wno-overlength-strings -Wno-parentheses-equality -Wno-self-assign -Wno-tautological-compare -Wno-unused-parameter -Wno-unused-value -Wunused-variable -Wextra-tokens -pipe -Wall conftest.c -o conftest.i"
84
- checked program was:
85
- /* begin */
86
- 1: #include "ruby.h"
87
- 2:
88
- 3: #include <sys/event.h>
89
- /* end */
90
-
91
- --------------------
92
-
93
- extconf.h is:
94
- /* begin */
95
- 1: #ifndef EXTCONF_H
96
- 2: #define EXTCONF_H
97
- 3: #define HAVE_SYS_EVENT_H 1
98
- 4: #endif
99
- /* end */
100
-
data/lib/event/backend.rb DELETED
@@ -1,49 +0,0 @@
1
- # Copyright, 2021, by Samuel G. D. Williams. <http://www.codeotaku.com>
2
- #
3
- # Permission is hereby granted, free of charge, to any person obtaining a copy
4
- # of this software and associated documentation files (the "Software"), to deal
5
- # in the Software without restriction, including without limitation the rights
6
- # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7
- # copies of the Software, and to permit persons to whom the Software is
8
- # furnished to do so, subject to the following conditions:
9
- #
10
- # The above copyright notice and this permission notice shall be included in
11
- # all copies or substantial portions of the Software.
12
- #
13
- # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14
- # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15
- # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16
- # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17
- # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18
- # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
19
- # THE SOFTWARE.
20
-
21
- require_relative 'backend/select'
22
-
23
- module Event
24
- module Backend
25
- def self.default(env = ENV)
26
- if backend = env['EVENT_BACKEND']&.to_sym
27
- if Event::Backend.const_defined?(backend)
28
- return Event::Backend.const_get(backend)
29
- else
30
- warn "Could not find EVENT_BACKEND=#{backend}!"
31
- end
32
- end
33
-
34
- if self.const_defined?(:URing)
35
- return Event::Backend::URing
36
- elsif self.const_defined?(:KQueue)
37
- return Event::Backend::KQueue
38
- elsif self.const_defined?(:EPoll)
39
- return Event::Backend::EPoll
40
- else
41
- return Event::Backend::Select
42
- end
43
- end
44
-
45
- def self.new(...)
46
- default.new(...)
47
- end
48
- end
49
- end
@@ -1,108 +0,0 @@
1
- # Copyright, 2021, by Samuel G. D. Williams. <http://www.codeotaku.com>
2
- #
3
- # Permission is hereby granted, free of charge, to any person obtaining a copy
4
- # of this software and associated documentation files (the "Software"), to deal
5
- # in the Software without restriction, including without limitation the rights
6
- # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7
- # copies of the Software, and to permit persons to whom the Software is
8
- # furnished to do so, subject to the following conditions:
9
- #
10
- # The above copyright notice and this permission notice shall be included in
11
- # all copies or substantial portions of the Software.
12
- #
13
- # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14
- # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15
- # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16
- # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17
- # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18
- # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
19
- # THE SOFTWARE.
20
-
21
- require "event/version"
22
-
23
- module Event
24
- module Debug
25
- class Selector
26
- def initialize(selector)
27
- @selector = selector
28
-
29
- @readable = {}
30
- @writable = {}
31
- @priority = {}
32
- end
33
-
34
- def close
35
- if @selector.nil?
36
- raise "Selector already closed!"
37
- end
38
-
39
- @selector.close
40
- @selector = nil
41
- end
42
-
43
- def io_wait(fiber, io, events)
44
- register_readable(fiber, io, events)
45
- end
46
-
47
- def select(duration = nil)
48
- @selector.select(duration)
49
- end
50
-
51
- private
52
-
53
- def register_readable(fiber, io, events)
54
- if (events & READABLE) > 0
55
- if @readable.key?(io)
56
- raise "Cannot wait for #{io} to become readable from multiple fibers."
57
- end
58
-
59
- begin
60
- @readable[io] = fiber
61
-
62
- register_writable(fiber, io, events)
63
- ensure
64
- @readable.delete(io)
65
- end
66
- else
67
- register_writable(fiber, io, events)
68
- end
69
- end
70
-
71
- def register_writable(fiber, io, events)
72
- if (events & WRITABLE) > 0
73
- if @writable.key?(io)
74
- raise "Cannot wait for #{io} to become writable from multiple fibers."
75
- end
76
-
77
- begin
78
- @writable[io] = fiber
79
-
80
- register_priority(fiber, io, events)
81
- ensure
82
- @writable.delete(io)
83
- end
84
- else
85
- register_priority(fiber, io, events)
86
- end
87
- end
88
-
89
- def register_priority(fiber, io, events)
90
- if (events & PRIORITY) > 0
91
- if @priority.key?(io)
92
- raise "Cannot wait for #{io} to become priority from multiple fibers."
93
- end
94
-
95
- begin
96
- @priority[io] = fiber
97
-
98
- @selector.io_wait(fiber, io, events)
99
- ensure
100
- @priority.delete(io)
101
- end
102
- else
103
- @selector.io_wait(fiber, io, events)
104
- end
105
- end
106
- end
107
- end
108
- end