polyphony 0.85 → 0.86
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
- data/CHANGELOG.md +4 -0
- data/Gemfile.lock +1 -1
- data/ext/polyphony/io_extensions.c +2 -3
- data/lib/polyphony/version.rb +1 -1
- data/polyphony.gemspec +1 -1
- data/test/test_backend.rb +1 -1
- data/test/test_signal.rb +3 -3
- data/vendor/liburing/.github/pull_request_template.md +86 -0
- data/vendor/liburing/.github/workflows/build.yml +85 -0
- data/vendor/liburing/.github/workflows/shellcheck.yml +20 -0
- data/vendor/liburing/.gitignore +149 -0
- data/vendor/liburing/COPYING +502 -0
- data/vendor/liburing/COPYING.GPL +339 -0
- data/vendor/liburing/LICENSE +7 -0
- data/vendor/liburing/Makefile +82 -0
- data/vendor/liburing/Makefile.common +5 -0
- data/vendor/liburing/Makefile.quiet +11 -0
- data/vendor/liburing/README +46 -0
- data/vendor/liburing/configure +486 -0
- data/vendor/liburing/debian/README.Debian +7 -0
- data/vendor/liburing/debian/changelog +27 -0
- data/vendor/liburing/debian/compat +1 -0
- data/vendor/liburing/debian/control +48 -0
- data/vendor/liburing/debian/copyright +49 -0
- data/vendor/liburing/debian/liburing-dev.install +4 -0
- data/vendor/liburing/debian/liburing-dev.manpages +6 -0
- data/vendor/liburing/debian/liburing1-udeb.install +1 -0
- data/vendor/liburing/debian/liburing1.install +1 -0
- data/vendor/liburing/debian/liburing1.symbols +32 -0
- data/vendor/liburing/debian/patches/series +1 -0
- data/vendor/liburing/debian/rules +81 -0
- data/vendor/liburing/debian/source/format +1 -0
- data/vendor/liburing/debian/source/local-options +2 -0
- data/vendor/liburing/debian/source/options +1 -0
- data/vendor/liburing/debian/watch +3 -0
- data/vendor/liburing/examples/Makefile +38 -0
- data/vendor/liburing/examples/io_uring-cp.c +282 -0
- data/vendor/liburing/examples/io_uring-test.c +112 -0
- data/vendor/liburing/examples/link-cp.c +193 -0
- data/vendor/liburing/examples/ucontext-cp.c +273 -0
- data/vendor/liburing/liburing.pc.in +12 -0
- data/vendor/liburing/liburing.spec +66 -0
- data/vendor/liburing/make-debs.sh +53 -0
- data/vendor/liburing/man/io_uring.7 +754 -0
- data/vendor/liburing/man/io_uring_cq_advance.3 +35 -0
- data/vendor/liburing/man/io_uring_cq_ready.3 +25 -0
- data/vendor/liburing/man/io_uring_cqe_get_data.3 +34 -0
- data/vendor/liburing/man/io_uring_cqe_seen.3 +32 -0
- data/vendor/liburing/man/io_uring_enter.2 +1483 -0
- data/vendor/liburing/man/io_uring_free_probe.3 +24 -0
- data/vendor/liburing/man/io_uring_get_probe.3 +29 -0
- data/vendor/liburing/man/io_uring_get_sqe.3 +38 -0
- data/vendor/liburing/man/io_uring_opcode_supported.3 +29 -0
- data/vendor/liburing/man/io_uring_prep_msg_ring.3 +58 -0
- data/vendor/liburing/man/io_uring_prep_read.3 +50 -0
- data/vendor/liburing/man/io_uring_prep_read_fixed.3 +54 -0
- data/vendor/liburing/man/io_uring_prep_readv.3 +51 -0
- data/vendor/liburing/man/io_uring_prep_readv2.3 +79 -0
- data/vendor/liburing/man/io_uring_prep_write.3 +50 -0
- data/vendor/liburing/man/io_uring_prep_write_fixed.3 +54 -0
- data/vendor/liburing/man/io_uring_prep_writev.3 +51 -0
- data/vendor/liburing/man/io_uring_prep_writev2.3 +78 -0
- data/vendor/liburing/man/io_uring_queue_exit.3 +27 -0
- data/vendor/liburing/man/io_uring_queue_init.3 +44 -0
- data/vendor/liburing/man/io_uring_register.2 +688 -0
- data/vendor/liburing/man/io_uring_register_buffers.3 +41 -0
- data/vendor/liburing/man/io_uring_register_files.3 +35 -0
- data/vendor/liburing/man/io_uring_setup.2 +534 -0
- data/vendor/liburing/man/io_uring_sq_ready.3 +25 -0
- data/vendor/liburing/man/io_uring_sq_space_left.3 +25 -0
- data/vendor/liburing/man/io_uring_sqe_set_data.3 +30 -0
- data/vendor/liburing/man/io_uring_sqe_set_flags.3 +60 -0
- data/vendor/liburing/man/io_uring_sqring_wait.3 +30 -0
- data/vendor/liburing/man/io_uring_submit.3 +29 -0
- data/vendor/liburing/man/io_uring_submit_and_wait.3 +34 -0
- data/vendor/liburing/man/io_uring_submit_and_wait_timeout.3 +49 -0
- data/vendor/liburing/man/io_uring_unregister_buffers.3 +26 -0
- data/vendor/liburing/man/io_uring_unregister_files.3 +26 -0
- data/vendor/liburing/man/io_uring_wait_cqe.3 +33 -0
- data/vendor/liburing/man/io_uring_wait_cqe_nr.3 +36 -0
- data/vendor/liburing/man/io_uring_wait_cqe_timeout.3 +39 -0
- data/vendor/liburing/man/io_uring_wait_cqes.3 +46 -0
- data/vendor/liburing/src/Makefile +89 -0
- data/vendor/liburing/src/arch/aarch64/syscall.h +95 -0
- data/vendor/liburing/src/arch/generic/lib.h +21 -0
- data/vendor/liburing/src/arch/generic/syscall.h +87 -0
- data/vendor/liburing/src/arch/syscall-defs.h +67 -0
- data/vendor/liburing/src/arch/x86/lib.h +32 -0
- data/vendor/liburing/src/arch/x86/syscall.h +160 -0
- data/vendor/liburing/src/include/liburing/barrier.h +81 -0
- data/vendor/liburing/src/include/liburing/io_uring.h +442 -0
- data/vendor/liburing/src/include/liburing.h +921 -0
- data/vendor/liburing/src/int_flags.h +8 -0
- data/vendor/liburing/src/lib.h +57 -0
- data/vendor/liburing/src/liburing.map +53 -0
- data/vendor/liburing/src/nolibc.c +48 -0
- data/vendor/liburing/src/queue.c +403 -0
- data/vendor/liburing/src/register.c +293 -0
- data/vendor/liburing/src/setup.c +332 -0
- data/vendor/liburing/src/syscall.c +47 -0
- data/vendor/liburing/src/syscall.h +103 -0
- data/vendor/liburing/test/232c93d07b74-test.c +306 -0
- data/vendor/liburing/test/35fa71a030ca-test.c +329 -0
- data/vendor/liburing/test/500f9fbadef8-test.c +89 -0
- data/vendor/liburing/test/7ad0e4b2f83c-test.c +93 -0
- data/vendor/liburing/test/8a9973408177-test.c +106 -0
- data/vendor/liburing/test/917257daa0fe-test.c +53 -0
- data/vendor/liburing/test/Makefile +244 -0
- data/vendor/liburing/test/a0908ae19763-test.c +58 -0
- data/vendor/liburing/test/a4c0b3decb33-test.c +180 -0
- data/vendor/liburing/test/accept-link.c +254 -0
- data/vendor/liburing/test/accept-reuse.c +164 -0
- data/vendor/liburing/test/accept-test.c +79 -0
- data/vendor/liburing/test/accept.c +477 -0
- data/vendor/liburing/test/across-fork.c +283 -0
- data/vendor/liburing/test/b19062a56726-test.c +53 -0
- data/vendor/liburing/test/b5837bd5311d-test.c +77 -0
- data/vendor/liburing/test/ce593a6c480a-test.c +136 -0
- data/vendor/liburing/test/close-opath.c +122 -0
- data/vendor/liburing/test/config +10 -0
- data/vendor/liburing/test/connect.c +398 -0
- data/vendor/liburing/test/cq-full.c +96 -0
- data/vendor/liburing/test/cq-overflow.c +294 -0
- data/vendor/liburing/test/cq-peek-batch.c +102 -0
- data/vendor/liburing/test/cq-ready.c +94 -0
- data/vendor/liburing/test/cq-size.c +64 -0
- data/vendor/liburing/test/d4ae271dfaae-test.c +96 -0
- data/vendor/liburing/test/d77a67ed5f27-test.c +65 -0
- data/vendor/liburing/test/defer.c +307 -0
- data/vendor/liburing/test/double-poll-crash.c +185 -0
- data/vendor/liburing/test/drop-submit.c +92 -0
- data/vendor/liburing/test/eeed8b54e0df-test.c +114 -0
- data/vendor/liburing/test/empty-eownerdead.c +45 -0
- data/vendor/liburing/test/eventfd-disable.c +151 -0
- data/vendor/liburing/test/eventfd-reg.c +76 -0
- data/vendor/liburing/test/eventfd-ring.c +97 -0
- data/vendor/liburing/test/eventfd.c +112 -0
- data/vendor/liburing/test/exec-target.c +6 -0
- data/vendor/liburing/test/exit-no-cleanup.c +117 -0
- data/vendor/liburing/test/fadvise.c +202 -0
- data/vendor/liburing/test/fallocate.c +249 -0
- data/vendor/liburing/test/fc2a85cb02ef-test.c +131 -0
- data/vendor/liburing/test/file-register.c +858 -0
- data/vendor/liburing/test/file-update.c +173 -0
- data/vendor/liburing/test/file-verify.c +629 -0
- data/vendor/liburing/test/files-exit-hang-poll.c +128 -0
- data/vendor/liburing/test/files-exit-hang-timeout.c +134 -0
- data/vendor/liburing/test/fixed-link.c +90 -0
- data/vendor/liburing/test/fpos.c +252 -0
- data/vendor/liburing/test/fsync.c +224 -0
- data/vendor/liburing/test/hardlink.c +136 -0
- data/vendor/liburing/test/helpers.c +135 -0
- data/vendor/liburing/test/helpers.h +67 -0
- data/vendor/liburing/test/io-cancel.c +550 -0
- data/vendor/liburing/test/io_uring_enter.c +296 -0
- data/vendor/liburing/test/io_uring_register.c +676 -0
- data/vendor/liburing/test/io_uring_setup.c +192 -0
- data/vendor/liburing/test/iopoll.c +372 -0
- data/vendor/liburing/test/lfs-openat-write.c +119 -0
- data/vendor/liburing/test/lfs-openat.c +275 -0
- data/vendor/liburing/test/link-timeout.c +1107 -0
- data/vendor/liburing/test/link.c +496 -0
- data/vendor/liburing/test/link_drain.c +229 -0
- data/vendor/liburing/test/madvise.c +195 -0
- data/vendor/liburing/test/mkdir.c +108 -0
- data/vendor/liburing/test/msg-ring.c +234 -0
- data/vendor/liburing/test/multicqes_drain.c +387 -0
- data/vendor/liburing/test/nop-all-sizes.c +99 -0
- data/vendor/liburing/test/nop.c +115 -0
- data/vendor/liburing/test/open-close.c +261 -0
- data/vendor/liburing/test/openat2.c +308 -0
- data/vendor/liburing/test/personality.c +204 -0
- data/vendor/liburing/test/pipe-eof.c +83 -0
- data/vendor/liburing/test/pipe-reuse.c +105 -0
- data/vendor/liburing/test/poll-cancel-ton.c +135 -0
- data/vendor/liburing/test/poll-cancel.c +228 -0
- data/vendor/liburing/test/poll-link.c +230 -0
- data/vendor/liburing/test/poll-many.c +208 -0
- data/vendor/liburing/test/poll-mshot-update.c +273 -0
- data/vendor/liburing/test/poll-ring.c +48 -0
- data/vendor/liburing/test/poll-v-poll.c +353 -0
- data/vendor/liburing/test/poll.c +109 -0
- data/vendor/liburing/test/pollfree.c +426 -0
- data/vendor/liburing/test/probe.c +135 -0
- data/vendor/liburing/test/read-write.c +876 -0
- data/vendor/liburing/test/register-restrictions.c +633 -0
- data/vendor/liburing/test/rename.c +135 -0
- data/vendor/liburing/test/ring-leak.c +173 -0
- data/vendor/liburing/test/ring-leak2.c +249 -0
- data/vendor/liburing/test/rsrc_tags.c +449 -0
- data/vendor/liburing/test/runtests-loop.sh +16 -0
- data/vendor/liburing/test/runtests.sh +170 -0
- data/vendor/liburing/test/rw_merge_test.c +97 -0
- data/vendor/liburing/test/self.c +91 -0
- data/vendor/liburing/test/send_recv.c +286 -0
- data/vendor/liburing/test/send_recvmsg.c +345 -0
- data/vendor/liburing/test/sendmsg_fs_cve.c +200 -0
- data/vendor/liburing/test/shared-wq.c +84 -0
- data/vendor/liburing/test/short-read.c +75 -0
- data/vendor/liburing/test/shutdown.c +165 -0
- data/vendor/liburing/test/sigfd-deadlock.c +74 -0
- data/vendor/liburing/test/skip-cqe.c +429 -0
- data/vendor/liburing/test/socket-rw-eagain.c +158 -0
- data/vendor/liburing/test/socket-rw-offset.c +157 -0
- data/vendor/liburing/test/socket-rw.c +145 -0
- data/vendor/liburing/test/splice.c +512 -0
- data/vendor/liburing/test/sq-full-cpp.cc +45 -0
- data/vendor/liburing/test/sq-full.c +45 -0
- data/vendor/liburing/test/sq-poll-dup.c +204 -0
- data/vendor/liburing/test/sq-poll-kthread.c +169 -0
- data/vendor/liburing/test/sq-poll-share.c +137 -0
- data/vendor/liburing/test/sq-space_left.c +159 -0
- data/vendor/liburing/test/sqpoll-cancel-hang.c +157 -0
- data/vendor/liburing/test/sqpoll-disable-exit.c +196 -0
- data/vendor/liburing/test/sqpoll-exit-hang.c +78 -0
- data/vendor/liburing/test/sqpoll-sleep.c +69 -0
- data/vendor/liburing/test/statx.c +172 -0
- data/vendor/liburing/test/stdout.c +232 -0
- data/vendor/liburing/test/submit-link-fail.c +154 -0
- data/vendor/liburing/test/submit-reuse.c +239 -0
- data/vendor/liburing/test/symlink.c +116 -0
- data/vendor/liburing/test/teardowns.c +58 -0
- data/vendor/liburing/test/thread-exit.c +143 -0
- data/vendor/liburing/test/timeout-new.c +252 -0
- data/vendor/liburing/test/timeout-overflow.c +204 -0
- data/vendor/liburing/test/timeout.c +1523 -0
- data/vendor/liburing/test/unlink.c +112 -0
- data/vendor/liburing/test/wakeup-hang.c +162 -0
- metadata +223 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: b87dae4e2c17055e8206c820a4281774cdf3127195173948c97df4eb09a2bd13
|
|
4
|
+
data.tar.gz: 2e7bd958ec7435569423398069223eda41e9c2d89f580627bc22e9054276dd1c
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 48f6489939da965463735c83acb4372263eb44b48b5a16da1e704a15e3af971a5d43abd7da5e44f2455b40d880413c6fa8159794e663176c83a11eddebdebc7d
|
|
7
|
+
data.tar.gz: 3ada5f9041041e91b6b2a7f31ec609352752317e87c51df090517c9e2b556d9ef69ef8842babd15f25b2257c4226431520ff15df505748cb38bb4a1d5a19063c
|
data/CHANGELOG.md
CHANGED
data/Gemfile.lock
CHANGED
|
@@ -42,7 +42,7 @@ enum write_method {
|
|
|
42
42
|
WM_CALL
|
|
43
43
|
};
|
|
44
44
|
|
|
45
|
-
enum read_method detect_read_method(VALUE io) {
|
|
45
|
+
static enum read_method detect_read_method(VALUE io) {
|
|
46
46
|
if (rb_respond_to(io, ID_read_method)) {
|
|
47
47
|
VALUE method = rb_funcall(io, ID_read_method, 0);
|
|
48
48
|
if (method == SYM_readpartial) return RM_READPARTIAL;
|
|
@@ -58,7 +58,7 @@ enum read_method detect_read_method(VALUE io) {
|
|
|
58
58
|
rb_raise(rb_eRuntimeError, "Given io instance should be a callable or respond to #__read_method__");
|
|
59
59
|
}
|
|
60
60
|
|
|
61
|
-
enum write_method detect_write_method(VALUE io) {
|
|
61
|
+
static enum write_method detect_write_method(VALUE io) {
|
|
62
62
|
if (rb_respond_to(io, ID_write_method)) {
|
|
63
63
|
VALUE method = rb_funcall(io, ID_write_method, 0);
|
|
64
64
|
if (method == SYM_readpartial) return WM_WRITE;
|
|
@@ -140,7 +140,6 @@ static inline int read_to_raw_buffer(VALUE backend, VALUE io, enum read_method m
|
|
|
140
140
|
}
|
|
141
141
|
|
|
142
142
|
static inline int write_from_raw_buffer(VALUE backend, VALUE io, enum write_method method, struct raw_buffer *buffer) {
|
|
143
|
-
printf("write_from_raw_buffer len: %d\n", buffer->len);
|
|
144
143
|
switch (method) {
|
|
145
144
|
case WM_BACKEND_WRITE: {
|
|
146
145
|
VALUE len = Backend_write(backend, io, PTR2FIX(buffer));
|
data/lib/polyphony/version.rb
CHANGED
data/polyphony.gemspec
CHANGED
|
@@ -7,7 +7,7 @@ Gem::Specification.new do |s|
|
|
|
7
7
|
s.summary = 'Fine grained concurrency for Ruby'
|
|
8
8
|
s.author = 'Sharon Rosner'
|
|
9
9
|
s.email = 'sharon@noteflakes.com'
|
|
10
|
-
s.files = `git ls-files`.split
|
|
10
|
+
s.files = `git ls-files --recurse-submodules`.split
|
|
11
11
|
s.homepage = 'https://digital-fabric.github.io/polyphony'
|
|
12
12
|
s.metadata = {
|
|
13
13
|
"source_code_uri" => "https://github.com/digital-fabric/polyphony",
|
data/test/test_backend.rb
CHANGED
|
@@ -254,7 +254,7 @@ class BackendTest < MiniTest::Test
|
|
|
254
254
|
@backend.sleep(0.05)
|
|
255
255
|
f.stop
|
|
256
256
|
f.await # TODO: check why this test sometimes segfaults if we don't a<wait fiber
|
|
257
|
-
assert_in_range
|
|
257
|
+
assert_in_range 3..6, counter if IS_LINUX
|
|
258
258
|
end
|
|
259
259
|
|
|
260
260
|
class MyTimeoutException < Exception
|
data/test/test_signal.rb
CHANGED
|
@@ -16,10 +16,12 @@ class SignalTrapTest < Minitest::Test
|
|
|
16
16
|
end
|
|
17
17
|
|
|
18
18
|
events = []
|
|
19
|
+
Fiber.current.tag = :main
|
|
20
|
+
|
|
19
21
|
begin
|
|
20
22
|
Thread.backend.trace_proc = proc { |*e| events << [e[0], e[1].tag] }
|
|
21
23
|
trap ('SIGINT') { }
|
|
22
|
-
|
|
24
|
+
|
|
23
25
|
o1.orig_write("\n")
|
|
24
26
|
o1.close
|
|
25
27
|
|
|
@@ -30,8 +32,6 @@ class SignalTrapTest < Minitest::Test
|
|
|
30
32
|
trap ('SIGINT') { raise Interrupt }
|
|
31
33
|
end
|
|
32
34
|
|
|
33
|
-
Fiber.current.tag = :main
|
|
34
|
-
|
|
35
35
|
expected = [
|
|
36
36
|
[:block, :main],
|
|
37
37
|
[:enter_poll, :main],
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
|
|
2
|
+
<!-- Explain your changes here... -->
|
|
3
|
+
|
|
4
|
+
----
|
|
5
|
+
## git request-pull output:
|
|
6
|
+
```
|
|
7
|
+
<!-- START REPLACE ME -->
|
|
8
|
+
|
|
9
|
+
Generate your PR shortlog and diffstat with these commands:
|
|
10
|
+
git remote add axboe-tree https://github.com/axboe/liburing
|
|
11
|
+
git fetch axboe-tree
|
|
12
|
+
git request-pull axboe-tree/master your_fork_URL your_branch_name
|
|
13
|
+
|
|
14
|
+
Then replace this with the output of `git request-pull` command.
|
|
15
|
+
|
|
16
|
+
<!-- END REPLACE ME -->
|
|
17
|
+
```
|
|
18
|
+
----
|
|
19
|
+
<details>
|
|
20
|
+
<summary>Click to show/hide pull request guidelines</summary>
|
|
21
|
+
|
|
22
|
+
## Pull Request Guidelines
|
|
23
|
+
1. To make everyone easily filter pull request from the email
|
|
24
|
+
notification, use `[GIT PULL]` as a prefix in your PR title.
|
|
25
|
+
```
|
|
26
|
+
[GIT PULL] Your Pull Request Title
|
|
27
|
+
```
|
|
28
|
+
2. Follow the commit message format rules below.
|
|
29
|
+
3. Follow the Linux kernel coding style (see: https://github.com/torvalds/linux/blob/master/Documentation/process/coding-style.rst).
|
|
30
|
+
|
|
31
|
+
### Commit message format rules:
|
|
32
|
+
1. The first line is title (don't be more than 72 chars if possible).
|
|
33
|
+
2. Then an empty line.
|
|
34
|
+
3. Then a description (may be omitted for truly trivial changes).
|
|
35
|
+
4. Then an empty line again (if it has a description).
|
|
36
|
+
5. Then a `Signed-off-by` tag with your real name and email. For example:
|
|
37
|
+
```
|
|
38
|
+
Signed-off-by: Foo Bar <foo.bar@gmail.com>
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
The description should be word-wrapped at 72 chars. Some things should
|
|
42
|
+
not be word-wrapped. They may be some kind of quoted text - long
|
|
43
|
+
compiler error messages, oops reports, Link, etc. (things that have a
|
|
44
|
+
certain specific format).
|
|
45
|
+
|
|
46
|
+
Note that all of this goes in the commit message, not in the pull
|
|
47
|
+
request text. The pull request text should introduce what this pull
|
|
48
|
+
request does, and each commit message should explain the rationale for
|
|
49
|
+
why that particular change was made. The git tree is canonical source
|
|
50
|
+
of truth, not github.
|
|
51
|
+
|
|
52
|
+
Each patch should do one thing, and one thing only. If you find yourself
|
|
53
|
+
writing an explanation for why a patch is fixing multiple issues, that's
|
|
54
|
+
a good indication that the change should be split into separate patches.
|
|
55
|
+
|
|
56
|
+
If the commit is a fix for an issue, add a `Fixes` tag with the issue
|
|
57
|
+
URL.
|
|
58
|
+
|
|
59
|
+
Don't use GitHub anonymous email like this as the commit author:
|
|
60
|
+
```
|
|
61
|
+
123456789+username@users.noreply.github.com
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
Use a real email address!
|
|
65
|
+
|
|
66
|
+
### Commit message example:
|
|
67
|
+
```
|
|
68
|
+
src/queue: don't flush SQ ring for new wait interface
|
|
69
|
+
|
|
70
|
+
If we have IORING_FEAT_EXT_ARG, then timeouts are done through the
|
|
71
|
+
syscall instead of by posting an internal timeout. This was done
|
|
72
|
+
to be both more efficient, but also to enable multi-threaded use
|
|
73
|
+
the wait side. If we touch the SQ state by flushing it, that isn't
|
|
74
|
+
safe without synchronization.
|
|
75
|
+
|
|
76
|
+
Fixes: https://github.com/axboe/liburing/issues/402
|
|
77
|
+
Signed-off-by: Jens Axboe <axboe@kernel.dk>
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
</details>
|
|
81
|
+
|
|
82
|
+
----
|
|
83
|
+
## By submitting this pull request, I acknowledge that:
|
|
84
|
+
1. I have followed the above pull request guidelines.
|
|
85
|
+
2. I have the rights to submit this work under the same license.
|
|
86
|
+
3. I agree to a Developer Certificate of Origin (see https://developercertificate.org for more information).
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
name: Build test
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
# Trigger the workflow on push or pull requests.
|
|
5
|
+
push:
|
|
6
|
+
pull_request:
|
|
7
|
+
|
|
8
|
+
jobs:
|
|
9
|
+
build:
|
|
10
|
+
runs-on: ubuntu-latest
|
|
11
|
+
|
|
12
|
+
strategy:
|
|
13
|
+
fail-fast: false
|
|
14
|
+
matrix:
|
|
15
|
+
include:
|
|
16
|
+
# x86-64 gcc
|
|
17
|
+
- arch: x86_64
|
|
18
|
+
cc_pkg: gcc-x86-64-linux-gnu
|
|
19
|
+
cxx_pkg: g++-x86-64-linux-gnu
|
|
20
|
+
cc: x86_64-linux-gnu-gcc
|
|
21
|
+
cxx: x86_64-linux-gnu-g++
|
|
22
|
+
|
|
23
|
+
# x86-64 clang
|
|
24
|
+
- arch: x86_64
|
|
25
|
+
cc_pkg: clang
|
|
26
|
+
cxx_pkg: clang
|
|
27
|
+
cc: clang
|
|
28
|
+
cxx: clang++
|
|
29
|
+
|
|
30
|
+
# x86 (32-bit) gcc
|
|
31
|
+
- arch: i686
|
|
32
|
+
cc_pkg: gcc-i686-linux-gnu
|
|
33
|
+
cxx_pkg: g++-i686-linux-gnu
|
|
34
|
+
cc: i686-linux-gnu-gcc
|
|
35
|
+
cxx: i686-linux-gnu-g++
|
|
36
|
+
|
|
37
|
+
# aarch64 gcc
|
|
38
|
+
- arch: aarch64
|
|
39
|
+
cc_pkg: gcc-aarch64-linux-gnu
|
|
40
|
+
cxx_pkg: g++-aarch64-linux-gnu
|
|
41
|
+
cc: aarch64-linux-gnu-gcc
|
|
42
|
+
cxx: aarch64-linux-gnu-g++
|
|
43
|
+
|
|
44
|
+
# arm (32-bit) gcc
|
|
45
|
+
- arch: arm
|
|
46
|
+
cc_pkg: gcc-arm-linux-gnueabi
|
|
47
|
+
cxx_pkg: g++-arm-linux-gnueabi
|
|
48
|
+
cc: arm-linux-gnueabi-gcc
|
|
49
|
+
cxx: arm-linux-gnueabi-g++
|
|
50
|
+
|
|
51
|
+
env:
|
|
52
|
+
FLAGS: -g -O2 -Wall -Wextra -Werror
|
|
53
|
+
|
|
54
|
+
steps:
|
|
55
|
+
- name: Checkout source
|
|
56
|
+
uses: actions/checkout@v2
|
|
57
|
+
|
|
58
|
+
- name: Install Compilers
|
|
59
|
+
run: |
|
|
60
|
+
sudo apt-get update -y;
|
|
61
|
+
sudo apt-get install -y ${{matrix.cc_pkg}} ${{matrix.cxx_pkg}};
|
|
62
|
+
|
|
63
|
+
- name: Display compiler versions
|
|
64
|
+
run: |
|
|
65
|
+
${{matrix.cc}} --version;
|
|
66
|
+
${{matrix.cxx}} --version;
|
|
67
|
+
|
|
68
|
+
- name: Build
|
|
69
|
+
run: |
|
|
70
|
+
./configure --cc=${{matrix.cc}} --cxx=${{matrix.cxx}};
|
|
71
|
+
make -j$(nproc) V=1 CPPFLAGS="-Werror" CFLAGS="$FLAGS" CXXFLAGS="$FLAGS";
|
|
72
|
+
|
|
73
|
+
- name: Build nolibc
|
|
74
|
+
run: |
|
|
75
|
+
if [[ "${{matrix.arch}}" == "x86_64" ]]; then \
|
|
76
|
+
make clean; \
|
|
77
|
+
./configure --cc=${{matrix.cc}} --cxx=${{matrix.cxx}} --nolibc; \
|
|
78
|
+
make -j$(nproc) V=1 CPPFLAGS="-Werror" CFLAGS="$FLAGS" CXXFLAGS="$FLAGS"; \
|
|
79
|
+
else \
|
|
80
|
+
echo "Skipping nolibc build, this arch doesn't support building liburing without libc"; \
|
|
81
|
+
fi;
|
|
82
|
+
|
|
83
|
+
- name: Test install command
|
|
84
|
+
run: |
|
|
85
|
+
sudo make install;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
name: Shellcheck
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
# Trigger the workflow on push or pull requests.
|
|
5
|
+
push:
|
|
6
|
+
pull_request:
|
|
7
|
+
|
|
8
|
+
jobs:
|
|
9
|
+
test:
|
|
10
|
+
runs-on: ubuntu-latest
|
|
11
|
+
|
|
12
|
+
steps:
|
|
13
|
+
- name: Checkout source
|
|
14
|
+
uses: actions/checkout@v2
|
|
15
|
+
|
|
16
|
+
- name: Display shellcheck version
|
|
17
|
+
run: shellcheck --version
|
|
18
|
+
|
|
19
|
+
- name: Shellcheck execution
|
|
20
|
+
run: shellcheck test/runtest*.sh
|
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
*.rej
|
|
2
|
+
*.orig
|
|
3
|
+
*~
|
|
4
|
+
/*.patch
|
|
5
|
+
|
|
6
|
+
*.d
|
|
7
|
+
*.o
|
|
8
|
+
*.o[ls]
|
|
9
|
+
|
|
10
|
+
/src/liburing.a
|
|
11
|
+
/src/liburing.so*
|
|
12
|
+
/src/include/liburing/compat.h
|
|
13
|
+
|
|
14
|
+
/examples/io_uring-cp
|
|
15
|
+
/examples/io_uring-test
|
|
16
|
+
/examples/link-cp
|
|
17
|
+
/examples/ucontext-cp
|
|
18
|
+
|
|
19
|
+
/test/232c93d07b74-test
|
|
20
|
+
/test/35fa71a030ca-test
|
|
21
|
+
/test/500f9fbadef8-test
|
|
22
|
+
/test/7ad0e4b2f83c-test
|
|
23
|
+
/test/8a9973408177-test
|
|
24
|
+
/test/917257daa0fe-test
|
|
25
|
+
/test/a0908ae19763-test
|
|
26
|
+
/test/a4c0b3decb33-test
|
|
27
|
+
/test/accept
|
|
28
|
+
/test/accept-link
|
|
29
|
+
/test/accept-reuse
|
|
30
|
+
/test/accept-test
|
|
31
|
+
/test/across-fork
|
|
32
|
+
/test/b19062a56726-test
|
|
33
|
+
/test/b5837bd5311d-test
|
|
34
|
+
/test/ce593a6c480a-test
|
|
35
|
+
/test/close-opath
|
|
36
|
+
/test/config.local
|
|
37
|
+
/test/connect
|
|
38
|
+
/test/cq-full
|
|
39
|
+
/test/cq-overflow
|
|
40
|
+
/test/cq-overflow-peek
|
|
41
|
+
/test/cq-peek-batch
|
|
42
|
+
/test/cq-ready
|
|
43
|
+
/test/cq-size
|
|
44
|
+
/test/d4ae271dfaae-test
|
|
45
|
+
/test/d77a67ed5f27-test
|
|
46
|
+
/test/defer
|
|
47
|
+
/test/double-poll-crash
|
|
48
|
+
/test/eeed8b54e0df-test
|
|
49
|
+
/test/empty-eownerdead
|
|
50
|
+
/test/eventfd
|
|
51
|
+
/test/eventfd-disable
|
|
52
|
+
/test/eventfd-reg
|
|
53
|
+
/test/eventfd-ring
|
|
54
|
+
/test/exit-no-cleanup
|
|
55
|
+
/test/fadvise
|
|
56
|
+
/test/fallocate
|
|
57
|
+
/test/fc2a85cb02ef-test
|
|
58
|
+
/test/file-register
|
|
59
|
+
/test/file-update
|
|
60
|
+
/test/file-verify
|
|
61
|
+
/test/files-exit-hang-poll
|
|
62
|
+
/test/files-exit-hang-timeout
|
|
63
|
+
/test/fixed-link
|
|
64
|
+
/test/fpos
|
|
65
|
+
/test/fsync
|
|
66
|
+
/test/hardlink
|
|
67
|
+
/test/io-cancel
|
|
68
|
+
/test/io_uring_enter
|
|
69
|
+
/test/io_uring_register
|
|
70
|
+
/test/io_uring_setup
|
|
71
|
+
/test/iopoll
|
|
72
|
+
/test/lfs-openat
|
|
73
|
+
/test/lfs-openat-write
|
|
74
|
+
/test/link
|
|
75
|
+
/test/link-timeout
|
|
76
|
+
/test/link_drain
|
|
77
|
+
/test/madvise
|
|
78
|
+
/test/mkdir
|
|
79
|
+
/test/msg-ring
|
|
80
|
+
/test/nop
|
|
81
|
+
/test/nop-all-sizes
|
|
82
|
+
/test/open-close
|
|
83
|
+
/test/openat2
|
|
84
|
+
/test/personality
|
|
85
|
+
/test/pipe-eof
|
|
86
|
+
/test/pipe-reuse
|
|
87
|
+
/test/poll
|
|
88
|
+
/test/poll-cancel
|
|
89
|
+
/test/poll-cancel-ton
|
|
90
|
+
/test/poll-link
|
|
91
|
+
/test/poll-many
|
|
92
|
+
/test/poll-ring
|
|
93
|
+
/test/poll-v-poll
|
|
94
|
+
/test/pollfree
|
|
95
|
+
/test/probe
|
|
96
|
+
/test/read-write
|
|
97
|
+
/test/register-restrictions
|
|
98
|
+
/test/rename
|
|
99
|
+
/test/ring-leak
|
|
100
|
+
/test/ring-leak2
|
|
101
|
+
/test/self
|
|
102
|
+
/test/send_recv
|
|
103
|
+
/test/send_recvmsg
|
|
104
|
+
/test/sendmsg_fs_cve
|
|
105
|
+
/test/shared-wq
|
|
106
|
+
/test/short-read
|
|
107
|
+
/test/shutdown
|
|
108
|
+
/test/sigfd-deadlock
|
|
109
|
+
/test/socket-rw
|
|
110
|
+
/test/socket-rw-eagain
|
|
111
|
+
/test/socket-rw-offset
|
|
112
|
+
/test/splice
|
|
113
|
+
/test/sq-full
|
|
114
|
+
/test/sq-full-cpp
|
|
115
|
+
/test/sq-poll-dup
|
|
116
|
+
/test/sq-poll-kthread
|
|
117
|
+
/test/sq-poll-share
|
|
118
|
+
/test/sqpoll-disable-exit
|
|
119
|
+
/test/sqpoll-exit-hang
|
|
120
|
+
/test/sqpoll-sleep
|
|
121
|
+
/test/sq-space_left
|
|
122
|
+
/test/statx
|
|
123
|
+
/test/stdout
|
|
124
|
+
/test/submit-reuse
|
|
125
|
+
/test/symlink
|
|
126
|
+
/test/teardowns
|
|
127
|
+
/test/thread-exit
|
|
128
|
+
/test/timeout
|
|
129
|
+
/test/timeout-new
|
|
130
|
+
/test/timeout-overflow
|
|
131
|
+
/test/unlink
|
|
132
|
+
/test/wakeup-hang
|
|
133
|
+
/test/multicqes_drain
|
|
134
|
+
/test/poll-mshot-update
|
|
135
|
+
/test/rsrc_tags
|
|
136
|
+
/test/rw_merge_test
|
|
137
|
+
/test/sqpoll-cancel-hang
|
|
138
|
+
/test/testfile
|
|
139
|
+
/test/submit-link-fail
|
|
140
|
+
/test/exec-target
|
|
141
|
+
/test/skip-cqe
|
|
142
|
+
/test/*.dmesg
|
|
143
|
+
/test/output/
|
|
144
|
+
|
|
145
|
+
config-host.h
|
|
146
|
+
config-host.mak
|
|
147
|
+
config.log
|
|
148
|
+
|
|
149
|
+
liburing.pc
|