io-event 1.10.1 → 1.10.2
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.
- checksums.yaml +4 -4
- checksums.yaml.gz.sig +0 -0
- data/ext/io/event/selector/uring.c +6 -3
- data/lib/io/event/selector/select.rb +18 -12
- data/lib/io/event/version.rb +1 -1
- data/readme.md +4 -0
- data/releases.md +4 -0
- data.tar.gz.sig +0 -0
- metadata +3 -3
- metadata.gz.sig +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 643309e8464f787b038f0d7a83470e1b4750989455329081a59924c8ba4c1f43
|
4
|
+
data.tar.gz: 449bd6b5a87a17f826eaaa6f8d62102641a1722d8a49d4cf3f3036bbff6252c1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 34cd0ddcba1cc3a67cbf586cacb12a87b07c7f12a2b32d05f6d6a2d288ec50c6f7a53df5be6b8458f479e887831ec74ff395253021a0a5b6af0b7166bbb41f58
|
7
|
+
data.tar.gz: 1e13343fea3e66597dc67e4f671df961fa967d8bb09d3c9b5b706e866b250431ec9bac01c49df994c3e7859497ed14a4b8cfe31aa03856dc66bc43aff18f7a5e
|
checksums.yaml.gz.sig
CHANGED
Binary file
|
@@ -18,7 +18,7 @@
|
|
18
18
|
enum {
|
19
19
|
DEBUG = 0,
|
20
20
|
DEBUG_COMPLETION = 0,
|
21
|
-
|
21
|
+
DEBUG_CQE = 0,
|
22
22
|
};
|
23
23
|
|
24
24
|
enum {URING_ENTRIES = 64};
|
@@ -552,7 +552,10 @@ VALUE io_wait_transfer(VALUE _arguments) {
|
|
552
552
|
|
553
553
|
if (DEBUG) fprintf(stderr, "io_wait_transfer:waiting=%p, result=%d\n", (void*)arguments->waiting, arguments->waiting->result);
|
554
554
|
|
555
|
-
|
555
|
+
int32_t result = arguments->waiting->result;
|
556
|
+
if (result < 0) {
|
557
|
+
rb_syserr_fail(-result, "io_wait_transfer:io_uring_poll_add");
|
558
|
+
} else if (result > 0) {
|
556
559
|
// We explicitly filter the resulting events based on the requested events.
|
557
560
|
// In some cases, poll will report events we didn't ask for.
|
558
561
|
return RB_INT2NUM(events_from_poll_flags(arguments->waiting->result & arguments->flags));
|
@@ -1059,7 +1062,7 @@ unsigned select_process_completions(struct IO_Event_Selector_URing *selector) {
|
|
1059
1062
|
}
|
1060
1063
|
|
1061
1064
|
io_uring_for_each_cqe(ring, head, cqe) {
|
1062
|
-
if (
|
1065
|
+
if (DEBUG_CQE) fprintf(stderr, "select_process_completions: cqe res=%d user_data=%p\n", cqe->res, (void*)cqe->user_data);
|
1063
1066
|
|
1064
1067
|
++completed;
|
1065
1068
|
|
@@ -421,19 +421,25 @@ module IO::Event
|
|
421
421
|
writable = Array.new
|
422
422
|
priority = Array.new
|
423
423
|
|
424
|
-
@waiting.
|
425
|
-
|
426
|
-
|
427
|
-
|
428
|
-
|
429
|
-
|
430
|
-
|
431
|
-
|
432
|
-
|
433
|
-
|
434
|
-
|
435
|
-
|
424
|
+
@waiting.delete_if do |io, waiter|
|
425
|
+
if io.closed?
|
426
|
+
true
|
427
|
+
else
|
428
|
+
waiter.each do |fiber, events|
|
429
|
+
if (events & IO::READABLE) > 0
|
430
|
+
readable << io
|
431
|
+
end
|
432
|
+
|
433
|
+
if (events & IO::WRITABLE) > 0
|
434
|
+
writable << io
|
435
|
+
end
|
436
|
+
|
437
|
+
if (events & IO::PRIORITY) > 0
|
438
|
+
priority << io
|
439
|
+
end
|
436
440
|
end
|
441
|
+
|
442
|
+
false
|
437
443
|
end
|
438
444
|
end
|
439
445
|
|
data/lib/io/event/version.rb
CHANGED
data/readme.md
CHANGED
@@ -18,6 +18,10 @@ Please see the [project documentation](https://socketry.github.io/io-event/) for
|
|
18
18
|
|
19
19
|
Please see the [project releases](https://socketry.github.io/io-event/releases/index) for all releases.
|
20
20
|
|
21
|
+
### v1.10.2
|
22
|
+
|
23
|
+
- Improved consistency of handling closed IO when invoking `#select`.
|
24
|
+
|
21
25
|
### v1.10.0
|
22
26
|
|
23
27
|
- `IO::Event::Profiler` is moved to dedicated gem: [fiber-profiler](https://github.com/socketry/fiber-profiler).
|
data/releases.md
CHANGED
data.tar.gz.sig
CHANGED
Binary file
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: io-event
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.10.
|
4
|
+
version: 1.10.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Samuel Williams
|
@@ -47,7 +47,7 @@ cert_chain:
|
|
47
47
|
Q2K9NVun/S785AP05vKkXZEFYxqG6EW012U4oLcFl5MySFajYXRYbuUpH6AY+HP8
|
48
48
|
voD0MPg1DssDLKwXyt1eKD/+Fq0bFWhwVM/1XiAXL7lyYUyOq24KHgQ2Csg=
|
49
49
|
-----END CERTIFICATE-----
|
50
|
-
date:
|
50
|
+
date: 1980-01-02 00:00:00.000000000 Z
|
51
51
|
dependencies: []
|
52
52
|
executables: []
|
53
53
|
extensions:
|
@@ -109,7 +109,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
109
109
|
- !ruby/object:Gem::Version
|
110
110
|
version: '0'
|
111
111
|
requirements: []
|
112
|
-
rubygems_version: 3.
|
112
|
+
rubygems_version: 3.7.0.dev
|
113
113
|
specification_version: 4
|
114
114
|
summary: An event loop.
|
115
115
|
test_files: []
|
metadata.gz.sig
CHANGED
Binary file
|