nio4r 0.2.0 → 2.7.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (60) hide show
  1. checksums.yaml +7 -0
  2. checksums.yaml.gz.sig +0 -0
  3. data/ext/libev/Changes +232 -3
  4. data/ext/libev/LICENSE +2 -1
  5. data/ext/libev/README +11 -10
  6. data/ext/libev/ev.c +2249 -473
  7. data/ext/libev/ev.h +165 -135
  8. data/ext/libev/ev_epoll.c +68 -36
  9. data/ext/libev/ev_iouring.c +694 -0
  10. data/ext/libev/ev_kqueue.c +44 -18
  11. data/ext/libev/ev_linuxaio.c +620 -0
  12. data/ext/libev/ev_poll.c +28 -20
  13. data/ext/libev/ev_port.c +23 -10
  14. data/ext/libev/ev_select.c +18 -12
  15. data/ext/libev/ev_vars.h +65 -19
  16. data/ext/libev/ev_win32.c +16 -7
  17. data/ext/libev/ev_wrap.h +236 -160
  18. data/ext/nio4r/.clang-format +16 -0
  19. data/ext/nio4r/bytebuffer.c +465 -0
  20. data/ext/nio4r/extconf.rb +44 -35
  21. data/ext/nio4r/libev.h +3 -4
  22. data/ext/nio4r/monitor.c +186 -54
  23. data/ext/nio4r/nio4r.h +17 -23
  24. data/ext/nio4r/nio4r_ext.c +11 -3
  25. data/ext/nio4r/org/nio4r/ByteBuffer.java +295 -0
  26. data/ext/nio4r/org/nio4r/Monitor.java +176 -0
  27. data/ext/nio4r/org/nio4r/Nio4r.java +104 -0
  28. data/ext/nio4r/org/nio4r/Selector.java +297 -0
  29. data/ext/nio4r/selector.c +350 -182
  30. data/lib/nio/bytebuffer.rb +235 -0
  31. data/lib/nio/monitor.rb +100 -8
  32. data/lib/nio/selector.rb +110 -44
  33. data/lib/nio/version.rb +8 -1
  34. data/lib/nio.rb +47 -16
  35. data/lib/nio4r.rb +7 -0
  36. data/license.md +80 -0
  37. data/readme.md +91 -0
  38. data/releases.md +343 -0
  39. data.tar.gz.sig +2 -0
  40. metadata +114 -79
  41. metadata.gz.sig +0 -0
  42. data/.gitignore +0 -20
  43. data/.rspec +0 -4
  44. data/.travis.yml +0 -7
  45. data/CHANGES.md +0 -10
  46. data/Gemfile +0 -4
  47. data/LICENSE.txt +0 -20
  48. data/README.md +0 -171
  49. data/Rakefile +0 -9
  50. data/examples/echo_server.rb +0 -38
  51. data/ext/libev/README.embed +0 -3
  52. data/ext/libev/test_libev_win32.c +0 -123
  53. data/lib/nio/jruby/monitor.rb +0 -42
  54. data/lib/nio/jruby/selector.rb +0 -135
  55. data/nio4r.gemspec +0 -22
  56. data/spec/nio/monitor_spec.rb +0 -46
  57. data/spec/nio/selector_spec.rb +0 -269
  58. data/spec/spec_helper.rb +0 -3
  59. data/tasks/extension.rake +0 -10
  60. data/tasks/rspec.rake +0 -7
data/ext/libev/ev_wrap.h CHANGED
@@ -1,196 +1,272 @@
1
1
  /* DO NOT EDIT, automatically generated by update_ev_wrap */
2
2
  #ifndef EV_WRAP_H
3
3
  #define EV_WRAP_H
4
- #define now_floor ((loop)->now_floor)
5
- #define mn_now ((loop)->mn_now)
6
- #define rtmn_diff ((loop)->rtmn_diff)
7
- #define io_blocktime ((loop)->io_blocktime)
8
- #define timeout_blocktime ((loop)->timeout_blocktime)
9
- #define backend ((loop)->backend)
4
+ #define acquire_cb ((loop)->acquire_cb)
10
5
  #define activecnt ((loop)->activecnt)
11
- #define loop_done ((loop)->loop_done)
6
+ #define anfdmax ((loop)->anfdmax)
7
+ #define anfds ((loop)->anfds)
8
+ #define async_pending ((loop)->async_pending)
9
+ #define asynccnt ((loop)->asynccnt)
10
+ #define asyncmax ((loop)->asyncmax)
11
+ #define asyncs ((loop)->asyncs)
12
+ #define backend ((loop)->backend)
12
13
  #define backend_fd ((loop)->backend_fd)
13
- #define backend_fudge ((loop)->backend_fudge)
14
+ #define backend_mintime ((loop)->backend_mintime)
14
15
  #define backend_modify ((loop)->backend_modify)
15
16
  #define backend_poll ((loop)->backend_poll)
16
- #define anfds ((loop)->anfds)
17
- #define anfdmax ((loop)->anfdmax)
18
- #define pendings ((loop)->pendings)
19
- #define pendingmax ((loop)->pendingmax)
20
- #define pendingcnt ((loop)->pendingcnt)
21
- #define pending_w ((loop)->pending_w)
22
- #define rfeeds ((loop)->rfeeds)
23
- #define rfeedmax ((loop)->rfeedmax)
24
- #define rfeedcnt ((loop)->rfeedcnt)
25
- #define evfd ((loop)->evfd)
26
- #define evpipe ((loop)->evpipe)
27
- #define pipe_w ((loop)->pipe_w)
17
+ #define checkcnt ((loop)->checkcnt)
18
+ #define checkmax ((loop)->checkmax)
19
+ #define checks ((loop)->checks)
20
+ #define cleanupcnt ((loop)->cleanupcnt)
21
+ #define cleanupmax ((loop)->cleanupmax)
22
+ #define cleanups ((loop)->cleanups)
28
23
  #define curpid ((loop)->curpid)
29
- #define postfork ((loop)->postfork)
30
- #define vec_ri ((loop)->vec_ri)
31
- #define vec_ro ((loop)->vec_ro)
32
- #define vec_wi ((loop)->vec_wi)
33
- #define vec_wo ((loop)->vec_wo)
34
- #define vec_eo ((loop)->vec_eo)
35
- #define vec_max ((loop)->vec_max)
36
- #define polls ((loop)->polls)
37
- #define pollmax ((loop)->pollmax)
38
- #define pollcnt ((loop)->pollcnt)
39
- #define pollidxs ((loop)->pollidxs)
40
- #define pollidxmax ((loop)->pollidxmax)
41
- #define epoll_events ((loop)->epoll_events)
42
- #define epoll_eventmax ((loop)->epoll_eventmax)
43
- #define epoll_eperms ((loop)->epoll_eperms)
44
24
  #define epoll_epermcnt ((loop)->epoll_epermcnt)
45
25
  #define epoll_epermmax ((loop)->epoll_epermmax)
46
- #define kqueue_changes ((loop)->kqueue_changes)
47
- #define kqueue_changemax ((loop)->kqueue_changemax)
48
- #define kqueue_changecnt ((loop)->kqueue_changecnt)
49
- #define kqueue_events ((loop)->kqueue_events)
50
- #define kqueue_eventmax ((loop)->kqueue_eventmax)
51
- #define port_events ((loop)->port_events)
52
- #define port_eventmax ((loop)->port_eventmax)
53
- #define iocp ((loop)->iocp)
54
- #define fdchanges ((loop)->fdchanges)
55
- #define fdchangemax ((loop)->fdchangemax)
26
+ #define epoll_eperms ((loop)->epoll_eperms)
27
+ #define epoll_eventmax ((loop)->epoll_eventmax)
28
+ #define epoll_events ((loop)->epoll_events)
29
+ #define evpipe ((loop)->evpipe)
56
30
  #define fdchangecnt ((loop)->fdchangecnt)
57
- #define timers ((loop)->timers)
58
- #define timermax ((loop)->timermax)
59
- #define timercnt ((loop)->timercnt)
60
- #define periodics ((loop)->periodics)
61
- #define periodicmax ((loop)->periodicmax)
62
- #define periodiccnt ((loop)->periodiccnt)
63
- #define idles ((loop)->idles)
64
- #define idlemax ((loop)->idlemax)
65
- #define idlecnt ((loop)->idlecnt)
66
- #define idleall ((loop)->idleall)
67
- #define prepares ((loop)->prepares)
68
- #define preparemax ((loop)->preparemax)
69
- #define preparecnt ((loop)->preparecnt)
70
- #define checks ((loop)->checks)
71
- #define checkmax ((loop)->checkmax)
72
- #define checkcnt ((loop)->checkcnt)
73
- #define forks ((loop)->forks)
74
- #define forkmax ((loop)->forkmax)
31
+ #define fdchangemax ((loop)->fdchangemax)
32
+ #define fdchanges ((loop)->fdchanges)
75
33
  #define forkcnt ((loop)->forkcnt)
76
- #define cleanups ((loop)->cleanups)
77
- #define cleanupmax ((loop)->cleanupmax)
78
- #define cleanupcnt ((loop)->cleanupcnt)
79
- #define async_pending ((loop)->async_pending)
80
- #define asyncs ((loop)->asyncs)
81
- #define asyncmax ((loop)->asyncmax)
82
- #define asynccnt ((loop)->asynccnt)
83
- #define fs_fd ((loop)->fs_fd)
84
- #define fs_w ((loop)->fs_w)
34
+ #define forkmax ((loop)->forkmax)
35
+ #define forks ((loop)->forks)
85
36
  #define fs_2625 ((loop)->fs_2625)
37
+ #define fs_fd ((loop)->fs_fd)
86
38
  #define fs_hash ((loop)->fs_hash)
39
+ #define fs_w ((loop)->fs_w)
40
+ #define idleall ((loop)->idleall)
41
+ #define idlecnt ((loop)->idlecnt)
42
+ #define idlemax ((loop)->idlemax)
43
+ #define idles ((loop)->idles)
44
+ #define invoke_cb ((loop)->invoke_cb)
45
+ #define io_blocktime ((loop)->io_blocktime)
46
+ #define iocp ((loop)->iocp)
47
+ #define iouring_cq_cqes ((loop)->iouring_cq_cqes)
48
+ #define iouring_cq_head ((loop)->iouring_cq_head)
49
+ #define iouring_cq_overflow ((loop)->iouring_cq_overflow)
50
+ #define iouring_cq_ring ((loop)->iouring_cq_ring)
51
+ #define iouring_cq_ring_entries ((loop)->iouring_cq_ring_entries)
52
+ #define iouring_cq_ring_mask ((loop)->iouring_cq_ring_mask)
53
+ #define iouring_cq_ring_size ((loop)->iouring_cq_ring_size)
54
+ #define iouring_cq_tail ((loop)->iouring_cq_tail)
55
+ #define iouring_entries ((loop)->iouring_entries)
56
+ #define iouring_fd ((loop)->iouring_fd)
57
+ #define iouring_max_entries ((loop)->iouring_max_entries)
58
+ #define iouring_sq_array ((loop)->iouring_sq_array)
59
+ #define iouring_sq_dropped ((loop)->iouring_sq_dropped)
60
+ #define iouring_sq_flags ((loop)->iouring_sq_flags)
61
+ #define iouring_sq_head ((loop)->iouring_sq_head)
62
+ #define iouring_sq_ring ((loop)->iouring_sq_ring)
63
+ #define iouring_sq_ring_entries ((loop)->iouring_sq_ring_entries)
64
+ #define iouring_sq_ring_mask ((loop)->iouring_sq_ring_mask)
65
+ #define iouring_sq_ring_size ((loop)->iouring_sq_ring_size)
66
+ #define iouring_sq_tail ((loop)->iouring_sq_tail)
67
+ #define iouring_sqes ((loop)->iouring_sqes)
68
+ #define iouring_sqes_size ((loop)->iouring_sqes_size)
69
+ #define iouring_tfd ((loop)->iouring_tfd)
70
+ #define iouring_tfd_to ((loop)->iouring_tfd_to)
71
+ #define iouring_tfd_w ((loop)->iouring_tfd_w)
72
+ #define iouring_to_submit ((loop)->iouring_to_submit)
73
+ #define kqueue_changecnt ((loop)->kqueue_changecnt)
74
+ #define kqueue_changemax ((loop)->kqueue_changemax)
75
+ #define kqueue_changes ((loop)->kqueue_changes)
76
+ #define kqueue_eventmax ((loop)->kqueue_eventmax)
77
+ #define kqueue_events ((loop)->kqueue_events)
78
+ #define kqueue_fd_pid ((loop)->kqueue_fd_pid)
79
+ #define linuxaio_ctx ((loop)->linuxaio_ctx)
80
+ #define linuxaio_epoll_w ((loop)->linuxaio_epoll_w)
81
+ #define linuxaio_iocbpmax ((loop)->linuxaio_iocbpmax)
82
+ #define linuxaio_iocbps ((loop)->linuxaio_iocbps)
83
+ #define linuxaio_iteration ((loop)->linuxaio_iteration)
84
+ #define linuxaio_submitcnt ((loop)->linuxaio_submitcnt)
85
+ #define linuxaio_submitmax ((loop)->linuxaio_submitmax)
86
+ #define linuxaio_submits ((loop)->linuxaio_submits)
87
+ #define loop_count ((loop)->loop_count)
88
+ #define loop_depth ((loop)->loop_depth)
89
+ #define loop_done ((loop)->loop_done)
90
+ #define mn_now ((loop)->mn_now)
91
+ #define now_floor ((loop)->now_floor)
92
+ #define origflags ((loop)->origflags)
93
+ #define pending_w ((loop)->pending_w)
94
+ #define pendingcnt ((loop)->pendingcnt)
95
+ #define pendingmax ((loop)->pendingmax)
96
+ #define pendingpri ((loop)->pendingpri)
97
+ #define pendings ((loop)->pendings)
98
+ #define periodiccnt ((loop)->periodiccnt)
99
+ #define periodicmax ((loop)->periodicmax)
100
+ #define periodics ((loop)->periodics)
101
+ #define pipe_w ((loop)->pipe_w)
102
+ #define pipe_write_skipped ((loop)->pipe_write_skipped)
103
+ #define pipe_write_wanted ((loop)->pipe_write_wanted)
104
+ #define pollcnt ((loop)->pollcnt)
105
+ #define pollidxmax ((loop)->pollidxmax)
106
+ #define pollidxs ((loop)->pollidxs)
107
+ #define pollmax ((loop)->pollmax)
108
+ #define polls ((loop)->polls)
109
+ #define port_eventmax ((loop)->port_eventmax)
110
+ #define port_events ((loop)->port_events)
111
+ #define postfork ((loop)->postfork)
112
+ #define preparecnt ((loop)->preparecnt)
113
+ #define preparemax ((loop)->preparemax)
114
+ #define prepares ((loop)->prepares)
115
+ #define release_cb ((loop)->release_cb)
116
+ #define rfeedcnt ((loop)->rfeedcnt)
117
+ #define rfeedmax ((loop)->rfeedmax)
118
+ #define rfeeds ((loop)->rfeeds)
119
+ #define rtmn_diff ((loop)->rtmn_diff)
87
120
  #define sig_pending ((loop)->sig_pending)
88
- #define nosigmask ((loop)->nosigmask)
89
121
  #define sigfd ((loop)->sigfd)
90
- #define sigfd_w ((loop)->sigfd_w)
91
122
  #define sigfd_set ((loop)->sigfd_set)
92
- #define origflags ((loop)->origflags)
93
- #define loop_count ((loop)->loop_count)
94
- #define loop_depth ((loop)->loop_depth)
123
+ #define sigfd_w ((loop)->sigfd_w)
124
+ #define timeout_blocktime ((loop)->timeout_blocktime)
125
+ #define timercnt ((loop)->timercnt)
126
+ #define timerfd ((loop)->timerfd)
127
+ #define timerfd_w ((loop)->timerfd_w)
128
+ #define timermax ((loop)->timermax)
129
+ #define timers ((loop)->timers)
95
130
  #define userdata ((loop)->userdata)
96
- #define release_cb ((loop)->release_cb)
97
- #define acquire_cb ((loop)->acquire_cb)
98
- #define invoke_cb ((loop)->invoke_cb)
131
+ #define vec_eo ((loop)->vec_eo)
132
+ #define vec_max ((loop)->vec_max)
133
+ #define vec_ri ((loop)->vec_ri)
134
+ #define vec_ro ((loop)->vec_ro)
135
+ #define vec_wi ((loop)->vec_wi)
136
+ #define vec_wo ((loop)->vec_wo)
99
137
  #else
100
138
  #undef EV_WRAP_H
101
- #undef now_floor
102
- #undef mn_now
103
- #undef rtmn_diff
104
- #undef io_blocktime
105
- #undef timeout_blocktime
106
- #undef backend
139
+ #undef acquire_cb
107
140
  #undef activecnt
108
- #undef loop_done
141
+ #undef anfdmax
142
+ #undef anfds
143
+ #undef async_pending
144
+ #undef asynccnt
145
+ #undef asyncmax
146
+ #undef asyncs
147
+ #undef backend
109
148
  #undef backend_fd
110
- #undef backend_fudge
149
+ #undef backend_mintime
111
150
  #undef backend_modify
112
151
  #undef backend_poll
113
- #undef anfds
114
- #undef anfdmax
115
- #undef pendings
116
- #undef pendingmax
117
- #undef pendingcnt
118
- #undef pending_w
119
- #undef rfeeds
120
- #undef rfeedmax
121
- #undef rfeedcnt
122
- #undef evfd
123
- #undef evpipe
124
- #undef pipe_w
152
+ #undef checkcnt
153
+ #undef checkmax
154
+ #undef checks
155
+ #undef cleanupcnt
156
+ #undef cleanupmax
157
+ #undef cleanups
125
158
  #undef curpid
126
- #undef postfork
127
- #undef vec_ri
128
- #undef vec_ro
129
- #undef vec_wi
130
- #undef vec_wo
131
- #undef vec_eo
132
- #undef vec_max
133
- #undef polls
134
- #undef pollmax
135
- #undef pollcnt
136
- #undef pollidxs
137
- #undef pollidxmax
138
- #undef epoll_events
139
- #undef epoll_eventmax
140
- #undef epoll_eperms
141
159
  #undef epoll_epermcnt
142
160
  #undef epoll_epermmax
143
- #undef kqueue_changes
144
- #undef kqueue_changemax
145
- #undef kqueue_changecnt
146
- #undef kqueue_events
147
- #undef kqueue_eventmax
148
- #undef port_events
149
- #undef port_eventmax
150
- #undef iocp
151
- #undef fdchanges
152
- #undef fdchangemax
161
+ #undef epoll_eperms
162
+ #undef epoll_eventmax
163
+ #undef epoll_events
164
+ #undef evpipe
153
165
  #undef fdchangecnt
154
- #undef timers
155
- #undef timermax
156
- #undef timercnt
157
- #undef periodics
158
- #undef periodicmax
159
- #undef periodiccnt
160
- #undef idles
161
- #undef idlemax
162
- #undef idlecnt
163
- #undef idleall
164
- #undef prepares
165
- #undef preparemax
166
- #undef preparecnt
167
- #undef checks
168
- #undef checkmax
169
- #undef checkcnt
170
- #undef forks
171
- #undef forkmax
166
+ #undef fdchangemax
167
+ #undef fdchanges
172
168
  #undef forkcnt
173
- #undef cleanups
174
- #undef cleanupmax
175
- #undef cleanupcnt
176
- #undef async_pending
177
- #undef asyncs
178
- #undef asyncmax
179
- #undef asynccnt
180
- #undef fs_fd
181
- #undef fs_w
169
+ #undef forkmax
170
+ #undef forks
182
171
  #undef fs_2625
172
+ #undef fs_fd
183
173
  #undef fs_hash
174
+ #undef fs_w
175
+ #undef idleall
176
+ #undef idlecnt
177
+ #undef idlemax
178
+ #undef idles
179
+ #undef invoke_cb
180
+ #undef io_blocktime
181
+ #undef iocp
182
+ #undef iouring_cq_cqes
183
+ #undef iouring_cq_head
184
+ #undef iouring_cq_overflow
185
+ #undef iouring_cq_ring
186
+ #undef iouring_cq_ring_entries
187
+ #undef iouring_cq_ring_mask
188
+ #undef iouring_cq_ring_size
189
+ #undef iouring_cq_tail
190
+ #undef iouring_entries
191
+ #undef iouring_fd
192
+ #undef iouring_max_entries
193
+ #undef iouring_sq_array
194
+ #undef iouring_sq_dropped
195
+ #undef iouring_sq_flags
196
+ #undef iouring_sq_head
197
+ #undef iouring_sq_ring
198
+ #undef iouring_sq_ring_entries
199
+ #undef iouring_sq_ring_mask
200
+ #undef iouring_sq_ring_size
201
+ #undef iouring_sq_tail
202
+ #undef iouring_sqes
203
+ #undef iouring_sqes_size
204
+ #undef iouring_tfd
205
+ #undef iouring_tfd_to
206
+ #undef iouring_tfd_w
207
+ #undef iouring_to_submit
208
+ #undef kqueue_changecnt
209
+ #undef kqueue_changemax
210
+ #undef kqueue_changes
211
+ #undef kqueue_eventmax
212
+ #undef kqueue_events
213
+ #undef kqueue_fd_pid
214
+ #undef linuxaio_ctx
215
+ #undef linuxaio_epoll_w
216
+ #undef linuxaio_iocbpmax
217
+ #undef linuxaio_iocbps
218
+ #undef linuxaio_iteration
219
+ #undef linuxaio_submitcnt
220
+ #undef linuxaio_submitmax
221
+ #undef linuxaio_submits
222
+ #undef loop_count
223
+ #undef loop_depth
224
+ #undef loop_done
225
+ #undef mn_now
226
+ #undef now_floor
227
+ #undef origflags
228
+ #undef pending_w
229
+ #undef pendingcnt
230
+ #undef pendingmax
231
+ #undef pendingpri
232
+ #undef pendings
233
+ #undef periodiccnt
234
+ #undef periodicmax
235
+ #undef periodics
236
+ #undef pipe_w
237
+ #undef pipe_write_skipped
238
+ #undef pipe_write_wanted
239
+ #undef pollcnt
240
+ #undef pollidxmax
241
+ #undef pollidxs
242
+ #undef pollmax
243
+ #undef polls
244
+ #undef port_eventmax
245
+ #undef port_events
246
+ #undef postfork
247
+ #undef preparecnt
248
+ #undef preparemax
249
+ #undef prepares
250
+ #undef release_cb
251
+ #undef rfeedcnt
252
+ #undef rfeedmax
253
+ #undef rfeeds
254
+ #undef rtmn_diff
184
255
  #undef sig_pending
185
- #undef nosigmask
186
256
  #undef sigfd
187
- #undef sigfd_w
188
257
  #undef sigfd_set
189
- #undef origflags
190
- #undef loop_count
191
- #undef loop_depth
258
+ #undef sigfd_w
259
+ #undef timeout_blocktime
260
+ #undef timercnt
261
+ #undef timerfd
262
+ #undef timerfd_w
263
+ #undef timermax
264
+ #undef timers
192
265
  #undef userdata
193
- #undef release_cb
194
- #undef acquire_cb
195
- #undef invoke_cb
266
+ #undef vec_eo
267
+ #undef vec_max
268
+ #undef vec_ri
269
+ #undef vec_ro
270
+ #undef vec_wi
271
+ #undef vec_wo
196
272
  #endif
@@ -0,0 +1,16 @@
1
+ ---
2
+ Language: Cpp
3
+ BasedOnStyle: WebKit
4
+ AllowAllParametersOfDeclarationOnNextLine: false
5
+ BinPackArguments: false
6
+ BinPackParameters: false
7
+ AlignConsecutiveMacros: false
8
+ AlignConsecutiveAssignments: false
9
+ BreakBeforeBraces: Linux
10
+ BraceWrapping:
11
+ AfterControlStatement: Never
12
+ IndentCaseLabels: true
13
+ PointerAlignment: Right
14
+ SpaceBeforeParens: ControlStatements
15
+ IndentWidth: 4
16
+ ...