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.
Files changed (230) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +4 -0
  3. data/Gemfile.lock +1 -1
  4. data/ext/polyphony/io_extensions.c +2 -3
  5. data/lib/polyphony/version.rb +1 -1
  6. data/polyphony.gemspec +1 -1
  7. data/test/test_backend.rb +1 -1
  8. data/test/test_signal.rb +3 -3
  9. data/vendor/liburing/.github/pull_request_template.md +86 -0
  10. data/vendor/liburing/.github/workflows/build.yml +85 -0
  11. data/vendor/liburing/.github/workflows/shellcheck.yml +20 -0
  12. data/vendor/liburing/.gitignore +149 -0
  13. data/vendor/liburing/COPYING +502 -0
  14. data/vendor/liburing/COPYING.GPL +339 -0
  15. data/vendor/liburing/LICENSE +7 -0
  16. data/vendor/liburing/Makefile +82 -0
  17. data/vendor/liburing/Makefile.common +5 -0
  18. data/vendor/liburing/Makefile.quiet +11 -0
  19. data/vendor/liburing/README +46 -0
  20. data/vendor/liburing/configure +486 -0
  21. data/vendor/liburing/debian/README.Debian +7 -0
  22. data/vendor/liburing/debian/changelog +27 -0
  23. data/vendor/liburing/debian/compat +1 -0
  24. data/vendor/liburing/debian/control +48 -0
  25. data/vendor/liburing/debian/copyright +49 -0
  26. data/vendor/liburing/debian/liburing-dev.install +4 -0
  27. data/vendor/liburing/debian/liburing-dev.manpages +6 -0
  28. data/vendor/liburing/debian/liburing1-udeb.install +1 -0
  29. data/vendor/liburing/debian/liburing1.install +1 -0
  30. data/vendor/liburing/debian/liburing1.symbols +32 -0
  31. data/vendor/liburing/debian/patches/series +1 -0
  32. data/vendor/liburing/debian/rules +81 -0
  33. data/vendor/liburing/debian/source/format +1 -0
  34. data/vendor/liburing/debian/source/local-options +2 -0
  35. data/vendor/liburing/debian/source/options +1 -0
  36. data/vendor/liburing/debian/watch +3 -0
  37. data/vendor/liburing/examples/Makefile +38 -0
  38. data/vendor/liburing/examples/io_uring-cp.c +282 -0
  39. data/vendor/liburing/examples/io_uring-test.c +112 -0
  40. data/vendor/liburing/examples/link-cp.c +193 -0
  41. data/vendor/liburing/examples/ucontext-cp.c +273 -0
  42. data/vendor/liburing/liburing.pc.in +12 -0
  43. data/vendor/liburing/liburing.spec +66 -0
  44. data/vendor/liburing/make-debs.sh +53 -0
  45. data/vendor/liburing/man/io_uring.7 +754 -0
  46. data/vendor/liburing/man/io_uring_cq_advance.3 +35 -0
  47. data/vendor/liburing/man/io_uring_cq_ready.3 +25 -0
  48. data/vendor/liburing/man/io_uring_cqe_get_data.3 +34 -0
  49. data/vendor/liburing/man/io_uring_cqe_seen.3 +32 -0
  50. data/vendor/liburing/man/io_uring_enter.2 +1483 -0
  51. data/vendor/liburing/man/io_uring_free_probe.3 +24 -0
  52. data/vendor/liburing/man/io_uring_get_probe.3 +29 -0
  53. data/vendor/liburing/man/io_uring_get_sqe.3 +38 -0
  54. data/vendor/liburing/man/io_uring_opcode_supported.3 +29 -0
  55. data/vendor/liburing/man/io_uring_prep_msg_ring.3 +58 -0
  56. data/vendor/liburing/man/io_uring_prep_read.3 +50 -0
  57. data/vendor/liburing/man/io_uring_prep_read_fixed.3 +54 -0
  58. data/vendor/liburing/man/io_uring_prep_readv.3 +51 -0
  59. data/vendor/liburing/man/io_uring_prep_readv2.3 +79 -0
  60. data/vendor/liburing/man/io_uring_prep_write.3 +50 -0
  61. data/vendor/liburing/man/io_uring_prep_write_fixed.3 +54 -0
  62. data/vendor/liburing/man/io_uring_prep_writev.3 +51 -0
  63. data/vendor/liburing/man/io_uring_prep_writev2.3 +78 -0
  64. data/vendor/liburing/man/io_uring_queue_exit.3 +27 -0
  65. data/vendor/liburing/man/io_uring_queue_init.3 +44 -0
  66. data/vendor/liburing/man/io_uring_register.2 +688 -0
  67. data/vendor/liburing/man/io_uring_register_buffers.3 +41 -0
  68. data/vendor/liburing/man/io_uring_register_files.3 +35 -0
  69. data/vendor/liburing/man/io_uring_setup.2 +534 -0
  70. data/vendor/liburing/man/io_uring_sq_ready.3 +25 -0
  71. data/vendor/liburing/man/io_uring_sq_space_left.3 +25 -0
  72. data/vendor/liburing/man/io_uring_sqe_set_data.3 +30 -0
  73. data/vendor/liburing/man/io_uring_sqe_set_flags.3 +60 -0
  74. data/vendor/liburing/man/io_uring_sqring_wait.3 +30 -0
  75. data/vendor/liburing/man/io_uring_submit.3 +29 -0
  76. data/vendor/liburing/man/io_uring_submit_and_wait.3 +34 -0
  77. data/vendor/liburing/man/io_uring_submit_and_wait_timeout.3 +49 -0
  78. data/vendor/liburing/man/io_uring_unregister_buffers.3 +26 -0
  79. data/vendor/liburing/man/io_uring_unregister_files.3 +26 -0
  80. data/vendor/liburing/man/io_uring_wait_cqe.3 +33 -0
  81. data/vendor/liburing/man/io_uring_wait_cqe_nr.3 +36 -0
  82. data/vendor/liburing/man/io_uring_wait_cqe_timeout.3 +39 -0
  83. data/vendor/liburing/man/io_uring_wait_cqes.3 +46 -0
  84. data/vendor/liburing/src/Makefile +89 -0
  85. data/vendor/liburing/src/arch/aarch64/syscall.h +95 -0
  86. data/vendor/liburing/src/arch/generic/lib.h +21 -0
  87. data/vendor/liburing/src/arch/generic/syscall.h +87 -0
  88. data/vendor/liburing/src/arch/syscall-defs.h +67 -0
  89. data/vendor/liburing/src/arch/x86/lib.h +32 -0
  90. data/vendor/liburing/src/arch/x86/syscall.h +160 -0
  91. data/vendor/liburing/src/include/liburing/barrier.h +81 -0
  92. data/vendor/liburing/src/include/liburing/io_uring.h +442 -0
  93. data/vendor/liburing/src/include/liburing.h +921 -0
  94. data/vendor/liburing/src/int_flags.h +8 -0
  95. data/vendor/liburing/src/lib.h +57 -0
  96. data/vendor/liburing/src/liburing.map +53 -0
  97. data/vendor/liburing/src/nolibc.c +48 -0
  98. data/vendor/liburing/src/queue.c +403 -0
  99. data/vendor/liburing/src/register.c +293 -0
  100. data/vendor/liburing/src/setup.c +332 -0
  101. data/vendor/liburing/src/syscall.c +47 -0
  102. data/vendor/liburing/src/syscall.h +103 -0
  103. data/vendor/liburing/test/232c93d07b74-test.c +306 -0
  104. data/vendor/liburing/test/35fa71a030ca-test.c +329 -0
  105. data/vendor/liburing/test/500f9fbadef8-test.c +89 -0
  106. data/vendor/liburing/test/7ad0e4b2f83c-test.c +93 -0
  107. data/vendor/liburing/test/8a9973408177-test.c +106 -0
  108. data/vendor/liburing/test/917257daa0fe-test.c +53 -0
  109. data/vendor/liburing/test/Makefile +244 -0
  110. data/vendor/liburing/test/a0908ae19763-test.c +58 -0
  111. data/vendor/liburing/test/a4c0b3decb33-test.c +180 -0
  112. data/vendor/liburing/test/accept-link.c +254 -0
  113. data/vendor/liburing/test/accept-reuse.c +164 -0
  114. data/vendor/liburing/test/accept-test.c +79 -0
  115. data/vendor/liburing/test/accept.c +477 -0
  116. data/vendor/liburing/test/across-fork.c +283 -0
  117. data/vendor/liburing/test/b19062a56726-test.c +53 -0
  118. data/vendor/liburing/test/b5837bd5311d-test.c +77 -0
  119. data/vendor/liburing/test/ce593a6c480a-test.c +136 -0
  120. data/vendor/liburing/test/close-opath.c +122 -0
  121. data/vendor/liburing/test/config +10 -0
  122. data/vendor/liburing/test/connect.c +398 -0
  123. data/vendor/liburing/test/cq-full.c +96 -0
  124. data/vendor/liburing/test/cq-overflow.c +294 -0
  125. data/vendor/liburing/test/cq-peek-batch.c +102 -0
  126. data/vendor/liburing/test/cq-ready.c +94 -0
  127. data/vendor/liburing/test/cq-size.c +64 -0
  128. data/vendor/liburing/test/d4ae271dfaae-test.c +96 -0
  129. data/vendor/liburing/test/d77a67ed5f27-test.c +65 -0
  130. data/vendor/liburing/test/defer.c +307 -0
  131. data/vendor/liburing/test/double-poll-crash.c +185 -0
  132. data/vendor/liburing/test/drop-submit.c +92 -0
  133. data/vendor/liburing/test/eeed8b54e0df-test.c +114 -0
  134. data/vendor/liburing/test/empty-eownerdead.c +45 -0
  135. data/vendor/liburing/test/eventfd-disable.c +151 -0
  136. data/vendor/liburing/test/eventfd-reg.c +76 -0
  137. data/vendor/liburing/test/eventfd-ring.c +97 -0
  138. data/vendor/liburing/test/eventfd.c +112 -0
  139. data/vendor/liburing/test/exec-target.c +6 -0
  140. data/vendor/liburing/test/exit-no-cleanup.c +117 -0
  141. data/vendor/liburing/test/fadvise.c +202 -0
  142. data/vendor/liburing/test/fallocate.c +249 -0
  143. data/vendor/liburing/test/fc2a85cb02ef-test.c +131 -0
  144. data/vendor/liburing/test/file-register.c +858 -0
  145. data/vendor/liburing/test/file-update.c +173 -0
  146. data/vendor/liburing/test/file-verify.c +629 -0
  147. data/vendor/liburing/test/files-exit-hang-poll.c +128 -0
  148. data/vendor/liburing/test/files-exit-hang-timeout.c +134 -0
  149. data/vendor/liburing/test/fixed-link.c +90 -0
  150. data/vendor/liburing/test/fpos.c +252 -0
  151. data/vendor/liburing/test/fsync.c +224 -0
  152. data/vendor/liburing/test/hardlink.c +136 -0
  153. data/vendor/liburing/test/helpers.c +135 -0
  154. data/vendor/liburing/test/helpers.h +67 -0
  155. data/vendor/liburing/test/io-cancel.c +550 -0
  156. data/vendor/liburing/test/io_uring_enter.c +296 -0
  157. data/vendor/liburing/test/io_uring_register.c +676 -0
  158. data/vendor/liburing/test/io_uring_setup.c +192 -0
  159. data/vendor/liburing/test/iopoll.c +372 -0
  160. data/vendor/liburing/test/lfs-openat-write.c +119 -0
  161. data/vendor/liburing/test/lfs-openat.c +275 -0
  162. data/vendor/liburing/test/link-timeout.c +1107 -0
  163. data/vendor/liburing/test/link.c +496 -0
  164. data/vendor/liburing/test/link_drain.c +229 -0
  165. data/vendor/liburing/test/madvise.c +195 -0
  166. data/vendor/liburing/test/mkdir.c +108 -0
  167. data/vendor/liburing/test/msg-ring.c +234 -0
  168. data/vendor/liburing/test/multicqes_drain.c +387 -0
  169. data/vendor/liburing/test/nop-all-sizes.c +99 -0
  170. data/vendor/liburing/test/nop.c +115 -0
  171. data/vendor/liburing/test/open-close.c +261 -0
  172. data/vendor/liburing/test/openat2.c +308 -0
  173. data/vendor/liburing/test/personality.c +204 -0
  174. data/vendor/liburing/test/pipe-eof.c +83 -0
  175. data/vendor/liburing/test/pipe-reuse.c +105 -0
  176. data/vendor/liburing/test/poll-cancel-ton.c +135 -0
  177. data/vendor/liburing/test/poll-cancel.c +228 -0
  178. data/vendor/liburing/test/poll-link.c +230 -0
  179. data/vendor/liburing/test/poll-many.c +208 -0
  180. data/vendor/liburing/test/poll-mshot-update.c +273 -0
  181. data/vendor/liburing/test/poll-ring.c +48 -0
  182. data/vendor/liburing/test/poll-v-poll.c +353 -0
  183. data/vendor/liburing/test/poll.c +109 -0
  184. data/vendor/liburing/test/pollfree.c +426 -0
  185. data/vendor/liburing/test/probe.c +135 -0
  186. data/vendor/liburing/test/read-write.c +876 -0
  187. data/vendor/liburing/test/register-restrictions.c +633 -0
  188. data/vendor/liburing/test/rename.c +135 -0
  189. data/vendor/liburing/test/ring-leak.c +173 -0
  190. data/vendor/liburing/test/ring-leak2.c +249 -0
  191. data/vendor/liburing/test/rsrc_tags.c +449 -0
  192. data/vendor/liburing/test/runtests-loop.sh +16 -0
  193. data/vendor/liburing/test/runtests.sh +170 -0
  194. data/vendor/liburing/test/rw_merge_test.c +97 -0
  195. data/vendor/liburing/test/self.c +91 -0
  196. data/vendor/liburing/test/send_recv.c +286 -0
  197. data/vendor/liburing/test/send_recvmsg.c +345 -0
  198. data/vendor/liburing/test/sendmsg_fs_cve.c +200 -0
  199. data/vendor/liburing/test/shared-wq.c +84 -0
  200. data/vendor/liburing/test/short-read.c +75 -0
  201. data/vendor/liburing/test/shutdown.c +165 -0
  202. data/vendor/liburing/test/sigfd-deadlock.c +74 -0
  203. data/vendor/liburing/test/skip-cqe.c +429 -0
  204. data/vendor/liburing/test/socket-rw-eagain.c +158 -0
  205. data/vendor/liburing/test/socket-rw-offset.c +157 -0
  206. data/vendor/liburing/test/socket-rw.c +145 -0
  207. data/vendor/liburing/test/splice.c +512 -0
  208. data/vendor/liburing/test/sq-full-cpp.cc +45 -0
  209. data/vendor/liburing/test/sq-full.c +45 -0
  210. data/vendor/liburing/test/sq-poll-dup.c +204 -0
  211. data/vendor/liburing/test/sq-poll-kthread.c +169 -0
  212. data/vendor/liburing/test/sq-poll-share.c +137 -0
  213. data/vendor/liburing/test/sq-space_left.c +159 -0
  214. data/vendor/liburing/test/sqpoll-cancel-hang.c +157 -0
  215. data/vendor/liburing/test/sqpoll-disable-exit.c +196 -0
  216. data/vendor/liburing/test/sqpoll-exit-hang.c +78 -0
  217. data/vendor/liburing/test/sqpoll-sleep.c +69 -0
  218. data/vendor/liburing/test/statx.c +172 -0
  219. data/vendor/liburing/test/stdout.c +232 -0
  220. data/vendor/liburing/test/submit-link-fail.c +154 -0
  221. data/vendor/liburing/test/submit-reuse.c +239 -0
  222. data/vendor/liburing/test/symlink.c +116 -0
  223. data/vendor/liburing/test/teardowns.c +58 -0
  224. data/vendor/liburing/test/thread-exit.c +143 -0
  225. data/vendor/liburing/test/timeout-new.c +252 -0
  226. data/vendor/liburing/test/timeout-overflow.c +204 -0
  227. data/vendor/liburing/test/timeout.c +1523 -0
  228. data/vendor/liburing/test/unlink.c +112 -0
  229. data/vendor/liburing/test/wakeup-hang.c +162 -0
  230. metadata +223 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 1a1839977c06a8387f6ab48b181fb9fffef43df902b4ca0644ca0e31eec82cc0
4
- data.tar.gz: e24c712bfb1e1497adbdfc0cbd892c4b9087a983ebe541791b5beda99dd86cd4
3
+ metadata.gz: b87dae4e2c17055e8206c820a4281774cdf3127195173948c97df4eb09a2bd13
4
+ data.tar.gz: 2e7bd958ec7435569423398069223eda41e9c2d89f580627bc22e9054276dd1c
5
5
  SHA512:
6
- metadata.gz: 758b75666ed47b6c0d97abbc18a987cf6c60781f912c2f1ce7a4acb8104bc6279d09a387582f828ffdce10ff0694561be371edf311b8728d90e50b03d6bf1c7f
7
- data.tar.gz: 01a69c90ea2e437ac2c58a9936401c5e453a626886046c84aea04a596237b4879a024922f31ba6ddb50697b834ebbcd8d205b5ee20741536e1c22543a7d8b9ea
6
+ metadata.gz: 48f6489939da965463735c83acb4372263eb44b48b5a16da1e704a15e3af971a5d43abd7da5e44f2455b40d880413c6fa8159794e663176c83a11eddebdebc7d
7
+ data.tar.gz: 3ada5f9041041e91b6b2a7f31ec609352752317e87c51df090517c9e2b556d9ef69ef8842babd15f25b2257c4226431520ff15df505748cb38bb4a1d5a19063c
data/CHANGELOG.md CHANGED
@@ -1,3 +1,7 @@
1
+ ## 0.86 2022-03-14
2
+
3
+ - Fix gemspec
4
+
1
5
  ## 0.85 2022-03-13
2
6
 
3
7
  - Reduce write ops in `IO.gzip` (#77)
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- polyphony (0.85)
4
+ polyphony (0.86)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
@@ -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));
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Polyphony
4
- VERSION = '0.85'
4
+ VERSION = '0.86'
5
5
  end
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 4..6, counter if IS_LINUX
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