polyphony 1.0 → 1.0.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.
Files changed (170) hide show
  1. checksums.yaml +4 -4
  2. data/.yardopts +1 -0
  3. data/CHANGELOG.md +16 -3
  4. data/README.md +1 -0
  5. data/TODO.md +5 -13
  6. data/docs/cheat-sheet.md +248 -0
  7. data/docs/design-principles.md +59 -3
  8. data/docs/faq.md +15 -32
  9. data/docs/fiber-scheduling.md +14 -12
  10. data/docs/overview.md +140 -35
  11. data/docs/readme.md +4 -3
  12. data/docs/tutorial.md +19 -149
  13. data/examples/core/debug.rb +12 -0
  14. data/examples/core/rpc_benchmark.rb +136 -0
  15. data/ext/polyphony/polyphony.c +2 -1
  16. data/lib/polyphony/extensions/fiber.rb +1 -0
  17. data/lib/polyphony/extensions/io.rb +171 -161
  18. data/lib/polyphony/extensions/pipe.rb +3 -5
  19. data/lib/polyphony/extensions/socket.rb +45 -54
  20. data/lib/polyphony/version.rb +1 -1
  21. data/polyphony.gemspec +3 -1
  22. data/test/test_socket.rb +1 -1
  23. metadata +33 -149
  24. data/vendor/liburing/man/IO_URING_CHECK_VERSION.3 +0 -1
  25. data/vendor/liburing/man/IO_URING_VERSION_MAJOR.3 +0 -1
  26. data/vendor/liburing/man/IO_URING_VERSION_MINOR.3 +0 -1
  27. data/vendor/liburing/man/io_uring.7 +0 -781
  28. data/vendor/liburing/man/io_uring_buf_ring_add.3 +0 -53
  29. data/vendor/liburing/man/io_uring_buf_ring_advance.3 +0 -31
  30. data/vendor/liburing/man/io_uring_buf_ring_cq_advance.3 +0 -41
  31. data/vendor/liburing/man/io_uring_buf_ring_init.3 +0 -30
  32. data/vendor/liburing/man/io_uring_buf_ring_mask.3 +0 -27
  33. data/vendor/liburing/man/io_uring_check_version.3 +0 -72
  34. data/vendor/liburing/man/io_uring_close_ring_fd.3 +0 -43
  35. data/vendor/liburing/man/io_uring_cq_advance.3 +0 -49
  36. data/vendor/liburing/man/io_uring_cq_has_overflow.3 +0 -25
  37. data/vendor/liburing/man/io_uring_cq_ready.3 +0 -26
  38. data/vendor/liburing/man/io_uring_cqe_get_data.3 +0 -53
  39. data/vendor/liburing/man/io_uring_cqe_get_data64.3 +0 -1
  40. data/vendor/liburing/man/io_uring_cqe_seen.3 +0 -42
  41. data/vendor/liburing/man/io_uring_enter.2 +0 -1700
  42. data/vendor/liburing/man/io_uring_enter2.2 +0 -1
  43. data/vendor/liburing/man/io_uring_free_probe.3 +0 -27
  44. data/vendor/liburing/man/io_uring_get_events.3 +0 -33
  45. data/vendor/liburing/man/io_uring_get_probe.3 +0 -30
  46. data/vendor/liburing/man/io_uring_get_sqe.3 +0 -57
  47. data/vendor/liburing/man/io_uring_major_version.3 +0 -1
  48. data/vendor/liburing/man/io_uring_minor_version.3 +0 -1
  49. data/vendor/liburing/man/io_uring_opcode_supported.3 +0 -30
  50. data/vendor/liburing/man/io_uring_peek_cqe.3 +0 -38
  51. data/vendor/liburing/man/io_uring_prep_accept.3 +0 -197
  52. data/vendor/liburing/man/io_uring_prep_accept_direct.3 +0 -1
  53. data/vendor/liburing/man/io_uring_prep_cancel.3 +0 -118
  54. data/vendor/liburing/man/io_uring_prep_cancel64.3 +0 -1
  55. data/vendor/liburing/man/io_uring_prep_close.3 +0 -59
  56. data/vendor/liburing/man/io_uring_prep_close_direct.3 +0 -1
  57. data/vendor/liburing/man/io_uring_prep_connect.3 +0 -66
  58. data/vendor/liburing/man/io_uring_prep_fadvise.3 +0 -59
  59. data/vendor/liburing/man/io_uring_prep_fallocate.3 +0 -59
  60. data/vendor/liburing/man/io_uring_prep_fgetxattr.3 +0 -1
  61. data/vendor/liburing/man/io_uring_prep_files_update.3 +0 -92
  62. data/vendor/liburing/man/io_uring_prep_fsetxattr.3 +0 -1
  63. data/vendor/liburing/man/io_uring_prep_fsync.3 +0 -70
  64. data/vendor/liburing/man/io_uring_prep_getxattr.3 +0 -61
  65. data/vendor/liburing/man/io_uring_prep_link.3 +0 -1
  66. data/vendor/liburing/man/io_uring_prep_link_timeout.3 +0 -94
  67. data/vendor/liburing/man/io_uring_prep_linkat.3 +0 -91
  68. data/vendor/liburing/man/io_uring_prep_madvise.3 +0 -56
  69. data/vendor/liburing/man/io_uring_prep_mkdir.3 +0 -1
  70. data/vendor/liburing/man/io_uring_prep_mkdirat.3 +0 -83
  71. data/vendor/liburing/man/io_uring_prep_msg_ring.3 +0 -92
  72. data/vendor/liburing/man/io_uring_prep_msg_ring_cqe_flags.3 +0 -1
  73. data/vendor/liburing/man/io_uring_prep_multishot_accept.3 +0 -1
  74. data/vendor/liburing/man/io_uring_prep_multishot_accept_direct.3 +0 -1
  75. data/vendor/liburing/man/io_uring_prep_nop.3 +0 -28
  76. data/vendor/liburing/man/io_uring_prep_openat.3 +0 -117
  77. data/vendor/liburing/man/io_uring_prep_openat2.3 +0 -117
  78. data/vendor/liburing/man/io_uring_prep_openat2_direct.3 +0 -1
  79. data/vendor/liburing/man/io_uring_prep_openat_direct.3 +0 -1
  80. data/vendor/liburing/man/io_uring_prep_poll_add.3 +0 -72
  81. data/vendor/liburing/man/io_uring_prep_poll_multishot.3 +0 -1
  82. data/vendor/liburing/man/io_uring_prep_poll_remove.3 +0 -55
  83. data/vendor/liburing/man/io_uring_prep_poll_update.3 +0 -89
  84. data/vendor/liburing/man/io_uring_prep_provide_buffers.3 +0 -140
  85. data/vendor/liburing/man/io_uring_prep_read.3 +0 -69
  86. data/vendor/liburing/man/io_uring_prep_read_fixed.3 +0 -72
  87. data/vendor/liburing/man/io_uring_prep_readv.3 +0 -85
  88. data/vendor/liburing/man/io_uring_prep_readv2.3 +0 -111
  89. data/vendor/liburing/man/io_uring_prep_recv.3 +0 -105
  90. data/vendor/liburing/man/io_uring_prep_recv_multishot.3 +0 -1
  91. data/vendor/liburing/man/io_uring_prep_recvmsg.3 +0 -124
  92. data/vendor/liburing/man/io_uring_prep_recvmsg_multishot.3 +0 -1
  93. data/vendor/liburing/man/io_uring_prep_remove_buffers.3 +0 -52
  94. data/vendor/liburing/man/io_uring_prep_rename.3 +0 -1
  95. data/vendor/liburing/man/io_uring_prep_renameat.3 +0 -96
  96. data/vendor/liburing/man/io_uring_prep_send.3 +0 -66
  97. data/vendor/liburing/man/io_uring_prep_send_set_addr.3 +0 -38
  98. data/vendor/liburing/man/io_uring_prep_send_zc.3 +0 -96
  99. data/vendor/liburing/man/io_uring_prep_send_zc_fixed.3 +0 -1
  100. data/vendor/liburing/man/io_uring_prep_sendmsg.3 +0 -89
  101. data/vendor/liburing/man/io_uring_prep_sendmsg_zc.3 +0 -1
  102. data/vendor/liburing/man/io_uring_prep_setxattr.3 +0 -64
  103. data/vendor/liburing/man/io_uring_prep_shutdown.3 +0 -53
  104. data/vendor/liburing/man/io_uring_prep_socket.3 +0 -118
  105. data/vendor/liburing/man/io_uring_prep_socket_direct.3 +0 -1
  106. data/vendor/liburing/man/io_uring_prep_socket_direct_alloc.3 +0 -1
  107. data/vendor/liburing/man/io_uring_prep_splice.3 +0 -120
  108. data/vendor/liburing/man/io_uring_prep_statx.3 +0 -74
  109. data/vendor/liburing/man/io_uring_prep_symlink.3 +0 -1
  110. data/vendor/liburing/man/io_uring_prep_symlinkat.3 +0 -85
  111. data/vendor/liburing/man/io_uring_prep_sync_file_range.3 +0 -59
  112. data/vendor/liburing/man/io_uring_prep_tee.3 +0 -74
  113. data/vendor/liburing/man/io_uring_prep_timeout.3 +0 -95
  114. data/vendor/liburing/man/io_uring_prep_timeout_remove.3 +0 -1
  115. data/vendor/liburing/man/io_uring_prep_timeout_update.3 +0 -98
  116. data/vendor/liburing/man/io_uring_prep_unlink.3 +0 -1
  117. data/vendor/liburing/man/io_uring_prep_unlinkat.3 +0 -82
  118. data/vendor/liburing/man/io_uring_prep_write.3 +0 -67
  119. data/vendor/liburing/man/io_uring_prep_write_fixed.3 +0 -72
  120. data/vendor/liburing/man/io_uring_prep_writev.3 +0 -85
  121. data/vendor/liburing/man/io_uring_prep_writev2.3 +0 -111
  122. data/vendor/liburing/man/io_uring_queue_exit.3 +0 -26
  123. data/vendor/liburing/man/io_uring_queue_init.3 +0 -89
  124. data/vendor/liburing/man/io_uring_queue_init_params.3 +0 -1
  125. data/vendor/liburing/man/io_uring_recvmsg_cmsg_firsthdr.3 +0 -1
  126. data/vendor/liburing/man/io_uring_recvmsg_cmsg_nexthdr.3 +0 -1
  127. data/vendor/liburing/man/io_uring_recvmsg_name.3 +0 -1
  128. data/vendor/liburing/man/io_uring_recvmsg_out.3 +0 -82
  129. data/vendor/liburing/man/io_uring_recvmsg_payload.3 +0 -1
  130. data/vendor/liburing/man/io_uring_recvmsg_payload_length.3 +0 -1
  131. data/vendor/liburing/man/io_uring_recvmsg_validate.3 +0 -1
  132. data/vendor/liburing/man/io_uring_register.2 +0 -834
  133. data/vendor/liburing/man/io_uring_register_buf_ring.3 +0 -140
  134. data/vendor/liburing/man/io_uring_register_buffers.3 +0 -104
  135. data/vendor/liburing/man/io_uring_register_buffers_sparse.3 +0 -1
  136. data/vendor/liburing/man/io_uring_register_buffers_tags.3 +0 -1
  137. data/vendor/liburing/man/io_uring_register_buffers_update_tag.3 +0 -1
  138. data/vendor/liburing/man/io_uring_register_eventfd.3 +0 -51
  139. data/vendor/liburing/man/io_uring_register_eventfd_async.3 +0 -1
  140. data/vendor/liburing/man/io_uring_register_file_alloc_range.3 +0 -52
  141. data/vendor/liburing/man/io_uring_register_files.3 +0 -112
  142. data/vendor/liburing/man/io_uring_register_files_sparse.3 +0 -1
  143. data/vendor/liburing/man/io_uring_register_files_tags.3 +0 -1
  144. data/vendor/liburing/man/io_uring_register_files_update.3 +0 -1
  145. data/vendor/liburing/man/io_uring_register_files_update_tag.3 +0 -1
  146. data/vendor/liburing/man/io_uring_register_iowq_aff.3 +0 -61
  147. data/vendor/liburing/man/io_uring_register_iowq_max_workers.3 +0 -71
  148. data/vendor/liburing/man/io_uring_register_ring_fd.3 +0 -49
  149. data/vendor/liburing/man/io_uring_register_sync_cancel.3 +0 -71
  150. data/vendor/liburing/man/io_uring_setup.2 +0 -669
  151. data/vendor/liburing/man/io_uring_sq_ready.3 +0 -31
  152. data/vendor/liburing/man/io_uring_sq_space_left.3 +0 -25
  153. data/vendor/liburing/man/io_uring_sqe_set_data.3 +0 -48
  154. data/vendor/liburing/man/io_uring_sqe_set_data64.3 +0 -1
  155. data/vendor/liburing/man/io_uring_sqe_set_flags.3 +0 -87
  156. data/vendor/liburing/man/io_uring_sqring_wait.3 +0 -34
  157. data/vendor/liburing/man/io_uring_submit.3 +0 -46
  158. data/vendor/liburing/man/io_uring_submit_and_get_events.3 +0 -31
  159. data/vendor/liburing/man/io_uring_submit_and_wait.3 +0 -38
  160. data/vendor/liburing/man/io_uring_submit_and_wait_timeout.3 +0 -56
  161. data/vendor/liburing/man/io_uring_unregister_buf_ring.3 +0 -30
  162. data/vendor/liburing/man/io_uring_unregister_buffers.3 +0 -27
  163. data/vendor/liburing/man/io_uring_unregister_eventfd.3 +0 -1
  164. data/vendor/liburing/man/io_uring_unregister_files.3 +0 -27
  165. data/vendor/liburing/man/io_uring_unregister_iowq_aff.3 +0 -1
  166. data/vendor/liburing/man/io_uring_unregister_ring_fd.3 +0 -32
  167. data/vendor/liburing/man/io_uring_wait_cqe.3 +0 -40
  168. data/vendor/liburing/man/io_uring_wait_cqe_nr.3 +0 -43
  169. data/vendor/liburing/man/io_uring_wait_cqe_timeout.3 +0 -53
  170. data/vendor/liburing/man/io_uring_wait_cqes.3 +0 -56
@@ -69,24 +69,24 @@ class ::Socket < ::BasicSocket
69
69
  # If no bytes are available and `EOF` is not hit, this method will block until
70
70
  # the socket is ready to read from.
71
71
  #
72
- # @param maxlen [Integer, nil] maximum bytes to read from socket
72
+ # @param len [Integer, nil] maximum bytes to read from socket
73
73
  # @param buf [String, nil] buffer to read into
74
74
  # @param buf_pos [Number] buffer position to read into
75
75
  # @return [String] buffer used for reading
76
- def read(maxlen = nil, buf = nil, buf_pos = 0)
77
- return Polyphony.backend_recv(self, buf, maxlen, buf_pos) if buf
78
- return Polyphony.backend_recv(self, +'', maxlen, 0) if maxlen
79
-
80
- buf = +''
81
- len = buf.bytesize
82
- while true
83
- Polyphony.backend_recv(self, buf, maxlen || 4096, -1)
84
- new_len = buf.bytesize
85
- break if new_len == len
86
-
87
- len = new_len
76
+ def read(len = nil, buf = nil, buf_pos = 0)
77
+ return '' if len == 0
78
+
79
+ if buf
80
+ return Polyphony.backend_read(self, buf, len, true, buf_pos)
88
81
  end
89
- buf
82
+
83
+ @read_buffer ||= +''
84
+ result = Polyphony.backend_read(self, @read_buffer, len, true, -1)
85
+ return nil unless result
86
+
87
+ already_read = @read_buffer
88
+ @read_buffer = +''
89
+ already_read
90
90
  end
91
91
 
92
92
  # Receives up to `maxlen` bytes from the socket. If `outbuf` is given, it is
@@ -124,10 +124,7 @@ class ::Socket < ::BasicSocket
124
124
  # unpacker:
125
125
  #
126
126
  # unpacker = MessagePack::Unpacker.new
127
- # buffer = []
128
- # reader = spin do
129
- # i.feed_loop(unpacker, :feed_each) { |msg| handle_msg(msg) }
130
- # end
127
+ # conn.feed_loop(unpacker, :feed_each) { |msg| handle_msg(msg) }
131
128
  #
132
129
  # @param receiver [any] receiver object
133
130
  # @param method [Symbol] method to call
@@ -336,24 +333,24 @@ class ::TCPSocket < ::IPSocket
336
333
  # If no bytes are available and `EOF` is not hit, this method will block until
337
334
  # the socket is ready to read from.
338
335
  #
339
- # @param maxlen [Integer, nil] maximum bytes to read from socket
336
+ # @param len [Integer, nil] maximum bytes to read from socket
340
337
  # @param buf [String, nil] buffer to read into
341
338
  # @param buf_pos [Number] buffer position to read into
342
339
  # @return [String] buffer used for reading
343
- def read(maxlen = nil, buf = nil, buf_pos = 0)
344
- return Polyphony.backend_recv(self, buf, maxlen, buf_pos) if buf
345
- return Polyphony.backend_recv(self, +'', maxlen, 0) if maxlen
346
-
347
- buf = +''
348
- len = buf.bytesize
349
- while true
350
- Polyphony.backend_recv(self, buf, maxlen || 4096, -1)
351
- new_len = buf.bytesize
352
- break if new_len == len
353
-
354
- len = new_len
340
+ def read(len = nil, buf = nil, buf_pos = 0)
341
+ return '' if len == 0
342
+
343
+ if buf
344
+ return Polyphony.backend_read(self, buf, len, true, buf_pos)
355
345
  end
356
- buf
346
+
347
+ @read_buffer ||= +''
348
+ result = Polyphony.backend_read(self, @read_buffer, len, true, -1)
349
+ return nil unless result
350
+
351
+ already_read = @read_buffer
352
+ @read_buffer = +''
353
+ already_read
357
354
  end
358
355
 
359
356
  # Receives up to `maxlen` bytes from the socket. If `outbuf` is given, it is
@@ -391,10 +388,7 @@ class ::TCPSocket < ::IPSocket
391
388
  # unpacker:
392
389
  #
393
390
  # unpacker = MessagePack::Unpacker.new
394
- # buffer = []
395
- # reader = spin do
396
- # i.feed_loop(unpacker, :feed_each) { |msg| handle_msg(msg) }
397
- # end
391
+ # conn.feed_loop(unpacker, :feed_each) { |msg| handle_msg(msg) }
398
392
  #
399
393
  # @param receiver [any] receiver object
400
394
  # @param method [Symbol] method to call
@@ -548,24 +542,24 @@ class ::UNIXSocket < ::BasicSocket
548
542
  # If no bytes are available and `EOF` is not hit, this method will block until
549
543
  # the socket is ready to read from.
550
544
  #
551
- # @param maxlen [Integer, nil] maximum bytes to read from socket
545
+ # @param len [Integer, nil] maximum bytes to read from socket
552
546
  # @param buf [String, nil] buffer to read into
553
547
  # @param buf_pos [Number] buffer position to read into
554
548
  # @return [String] buffer used for reading
555
- def read(maxlen = nil, buf = nil, buf_pos = 0)
556
- return Polyphony.backend_recv(self, buf, maxlen, buf_pos) if buf
557
- return Polyphony.backend_recv(self, +'', maxlen, 0) if maxlen
558
-
559
- buf = +''
560
- len = buf.bytesize
561
- while true
562
- Polyphony.backend_recv(self, buf, maxlen || 4096, -1)
563
- new_len = buf.bytesize
564
- break if new_len == len
565
-
566
- len = new_len
549
+ def read(len = nil, buf = nil, buf_pos = 0)
550
+ return '' if len == 0
551
+
552
+ if buf
553
+ return Polyphony.backend_read(self, buf, len, true, buf_pos)
567
554
  end
568
- buf
555
+
556
+ @read_buffer ||= +''
557
+ result = Polyphony.backend_read(self, @read_buffer, len, true, -1)
558
+ return nil unless result
559
+
560
+ already_read = @read_buffer
561
+ @read_buffer = +''
562
+ already_read
569
563
  end
570
564
 
571
565
  # Receives up to `maxlen` bytes from the socket. If `outbuf` is given, it is
@@ -603,10 +597,7 @@ class ::UNIXSocket < ::BasicSocket
603
597
  # unpacker:
604
598
  #
605
599
  # unpacker = MessagePack::Unpacker.new
606
- # buffer = []
607
- # reader = spin do
608
- # i.feed_loop(unpacker, :feed_each) { |msg| handle_msg(msg) }
609
- # end
600
+ # conn.feed_loop(unpacker, :feed_each) { |msg| handle_msg(msg) }
610
601
  #
611
602
  # @param receiver [any] receiver object
612
603
  # @param method [Symbol] method to call
@@ -2,5 +2,5 @@
2
2
 
3
3
  module Polyphony
4
4
  # @!visibility private
5
- VERSION = '1.0'
5
+ VERSION = '1.0.2'
6
6
  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 --recurse-submodules`.split
10
+ s.files = `git ls-files --recurse-submodules`.split.reject { |fn| fn =~ /liburing\/man/ }
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",
@@ -29,4 +29,6 @@ Gem::Specification.new do |s|
29
29
  s.add_development_dependency 'msgpack', '1.6.0'
30
30
  s.add_development_dependency 'httparty', '0.21.0'
31
31
  s.add_development_dependency 'localhost', '1.1.10'
32
+ s.add_development_dependency 'debug', '1.8.0'
33
+ s.add_development_dependency 'benchmark-ips', '2.10.0'
32
34
  end
data/test/test_socket.rb CHANGED
@@ -75,7 +75,7 @@ class TCPSocketTest < MiniTest::Test
75
75
  server_fiber = spin do
76
76
  while (socket = server.accept)
77
77
  spin do
78
- while (data = socket.read(8192))
78
+ while (data = socket.readpartial(8192))
79
79
  socket << data
80
80
  end
81
81
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: polyphony
3
3
  version: !ruby/object:Gem::Version
4
- version: '1.0'
4
+ version: 1.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sharon Rosner
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-05-11 00:00:00.000000000 Z
11
+ date: 2023-05-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake-compiler
@@ -122,6 +122,34 @@ dependencies:
122
122
  - - '='
123
123
  - !ruby/object:Gem::Version
124
124
  version: 1.1.10
125
+ - !ruby/object:Gem::Dependency
126
+ name: debug
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - '='
130
+ - !ruby/object:Gem::Version
131
+ version: 1.8.0
132
+ type: :development
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - '='
137
+ - !ruby/object:Gem::Version
138
+ version: 1.8.0
139
+ - !ruby/object:Gem::Dependency
140
+ name: benchmark-ips
141
+ requirement: !ruby/object:Gem::Requirement
142
+ requirements:
143
+ - - '='
144
+ - !ruby/object:Gem::Version
145
+ version: 2.10.0
146
+ type: :development
147
+ prerelease: false
148
+ version_requirements: !ruby/object:Gem::Requirement
149
+ requirements:
150
+ - - '='
151
+ - !ruby/object:Gem::Version
152
+ version: 2.10.0
125
153
  description:
126
154
  email: sharon@noteflakes.com
127
155
  executables: []
@@ -154,6 +182,7 @@ files:
154
182
  - docs/assets/echo-fibers.svg
155
183
  - docs/assets/polyphony-logo.png
156
184
  - docs/assets/sleeping-fiber.svg
185
+ - docs/cheat-sheet.md
157
186
  - docs/concurrency.md
158
187
  - docs/design-principles.md
159
188
  - docs/exception-handling.md
@@ -181,6 +210,7 @@ files:
181
210
  - examples/core/calc_with_restart.rb
182
211
  - examples/core/calc_with_supervise.rb
183
212
  - examples/core/channels.rb
213
+ - examples/core/debug.rb
184
214
  - examples/core/deferring-an-operation.rb
185
215
  - examples/core/enumerable.rb
186
216
  - examples/core/erlang-style-genserver.rb
@@ -197,6 +227,7 @@ files:
197
227
  - examples/core/recurrent-timer.rb
198
228
  - examples/core/resource_delegate.rb
199
229
  - examples/core/ring.rb
230
+ - examples/core/rpc_benchmark.rb
200
231
  - examples/core/shutdown_all_children.rb
201
232
  - examples/core/spin.rb
202
233
  - examples/core/spin_error_backtrace.rb
@@ -424,153 +455,6 @@ files:
424
455
  - vendor/liburing/liburing.pc.in
425
456
  - vendor/liburing/liburing.spec
426
457
  - vendor/liburing/make-debs.sh
427
- - vendor/liburing/man/IO_URING_CHECK_VERSION.3
428
- - vendor/liburing/man/IO_URING_VERSION_MAJOR.3
429
- - vendor/liburing/man/IO_URING_VERSION_MINOR.3
430
- - vendor/liburing/man/io_uring.7
431
- - vendor/liburing/man/io_uring_buf_ring_add.3
432
- - vendor/liburing/man/io_uring_buf_ring_advance.3
433
- - vendor/liburing/man/io_uring_buf_ring_cq_advance.3
434
- - vendor/liburing/man/io_uring_buf_ring_init.3
435
- - vendor/liburing/man/io_uring_buf_ring_mask.3
436
- - vendor/liburing/man/io_uring_check_version.3
437
- - vendor/liburing/man/io_uring_close_ring_fd.3
438
- - vendor/liburing/man/io_uring_cq_advance.3
439
- - vendor/liburing/man/io_uring_cq_has_overflow.3
440
- - vendor/liburing/man/io_uring_cq_ready.3
441
- - vendor/liburing/man/io_uring_cqe_get_data.3
442
- - vendor/liburing/man/io_uring_cqe_get_data64.3
443
- - vendor/liburing/man/io_uring_cqe_seen.3
444
- - vendor/liburing/man/io_uring_enter.2
445
- - vendor/liburing/man/io_uring_enter2.2
446
- - vendor/liburing/man/io_uring_free_probe.3
447
- - vendor/liburing/man/io_uring_get_events.3
448
- - vendor/liburing/man/io_uring_get_probe.3
449
- - vendor/liburing/man/io_uring_get_sqe.3
450
- - vendor/liburing/man/io_uring_major_version.3
451
- - vendor/liburing/man/io_uring_minor_version.3
452
- - vendor/liburing/man/io_uring_opcode_supported.3
453
- - vendor/liburing/man/io_uring_peek_cqe.3
454
- - vendor/liburing/man/io_uring_prep_accept.3
455
- - vendor/liburing/man/io_uring_prep_accept_direct.3
456
- - vendor/liburing/man/io_uring_prep_cancel.3
457
- - vendor/liburing/man/io_uring_prep_cancel64.3
458
- - vendor/liburing/man/io_uring_prep_close.3
459
- - vendor/liburing/man/io_uring_prep_close_direct.3
460
- - vendor/liburing/man/io_uring_prep_connect.3
461
- - vendor/liburing/man/io_uring_prep_fadvise.3
462
- - vendor/liburing/man/io_uring_prep_fallocate.3
463
- - vendor/liburing/man/io_uring_prep_fgetxattr.3
464
- - vendor/liburing/man/io_uring_prep_files_update.3
465
- - vendor/liburing/man/io_uring_prep_fsetxattr.3
466
- - vendor/liburing/man/io_uring_prep_fsync.3
467
- - vendor/liburing/man/io_uring_prep_getxattr.3
468
- - vendor/liburing/man/io_uring_prep_link.3
469
- - vendor/liburing/man/io_uring_prep_link_timeout.3
470
- - vendor/liburing/man/io_uring_prep_linkat.3
471
- - vendor/liburing/man/io_uring_prep_madvise.3
472
- - vendor/liburing/man/io_uring_prep_mkdir.3
473
- - vendor/liburing/man/io_uring_prep_mkdirat.3
474
- - vendor/liburing/man/io_uring_prep_msg_ring.3
475
- - vendor/liburing/man/io_uring_prep_msg_ring_cqe_flags.3
476
- - vendor/liburing/man/io_uring_prep_multishot_accept.3
477
- - vendor/liburing/man/io_uring_prep_multishot_accept_direct.3
478
- - vendor/liburing/man/io_uring_prep_nop.3
479
- - vendor/liburing/man/io_uring_prep_openat.3
480
- - vendor/liburing/man/io_uring_prep_openat2.3
481
- - vendor/liburing/man/io_uring_prep_openat2_direct.3
482
- - vendor/liburing/man/io_uring_prep_openat_direct.3
483
- - vendor/liburing/man/io_uring_prep_poll_add.3
484
- - vendor/liburing/man/io_uring_prep_poll_multishot.3
485
- - vendor/liburing/man/io_uring_prep_poll_remove.3
486
- - vendor/liburing/man/io_uring_prep_poll_update.3
487
- - vendor/liburing/man/io_uring_prep_provide_buffers.3
488
- - vendor/liburing/man/io_uring_prep_read.3
489
- - vendor/liburing/man/io_uring_prep_read_fixed.3
490
- - vendor/liburing/man/io_uring_prep_readv.3
491
- - vendor/liburing/man/io_uring_prep_readv2.3
492
- - vendor/liburing/man/io_uring_prep_recv.3
493
- - vendor/liburing/man/io_uring_prep_recv_multishot.3
494
- - vendor/liburing/man/io_uring_prep_recvmsg.3
495
- - vendor/liburing/man/io_uring_prep_recvmsg_multishot.3
496
- - vendor/liburing/man/io_uring_prep_remove_buffers.3
497
- - vendor/liburing/man/io_uring_prep_rename.3
498
- - vendor/liburing/man/io_uring_prep_renameat.3
499
- - vendor/liburing/man/io_uring_prep_send.3
500
- - vendor/liburing/man/io_uring_prep_send_set_addr.3
501
- - vendor/liburing/man/io_uring_prep_send_zc.3
502
- - vendor/liburing/man/io_uring_prep_send_zc_fixed.3
503
- - vendor/liburing/man/io_uring_prep_sendmsg.3
504
- - vendor/liburing/man/io_uring_prep_sendmsg_zc.3
505
- - vendor/liburing/man/io_uring_prep_setxattr.3
506
- - vendor/liburing/man/io_uring_prep_shutdown.3
507
- - vendor/liburing/man/io_uring_prep_socket.3
508
- - vendor/liburing/man/io_uring_prep_socket_direct.3
509
- - vendor/liburing/man/io_uring_prep_socket_direct_alloc.3
510
- - vendor/liburing/man/io_uring_prep_splice.3
511
- - vendor/liburing/man/io_uring_prep_statx.3
512
- - vendor/liburing/man/io_uring_prep_symlink.3
513
- - vendor/liburing/man/io_uring_prep_symlinkat.3
514
- - vendor/liburing/man/io_uring_prep_sync_file_range.3
515
- - vendor/liburing/man/io_uring_prep_tee.3
516
- - vendor/liburing/man/io_uring_prep_timeout.3
517
- - vendor/liburing/man/io_uring_prep_timeout_remove.3
518
- - vendor/liburing/man/io_uring_prep_timeout_update.3
519
- - vendor/liburing/man/io_uring_prep_unlink.3
520
- - vendor/liburing/man/io_uring_prep_unlinkat.3
521
- - vendor/liburing/man/io_uring_prep_write.3
522
- - vendor/liburing/man/io_uring_prep_write_fixed.3
523
- - vendor/liburing/man/io_uring_prep_writev.3
524
- - vendor/liburing/man/io_uring_prep_writev2.3
525
- - vendor/liburing/man/io_uring_queue_exit.3
526
- - vendor/liburing/man/io_uring_queue_init.3
527
- - vendor/liburing/man/io_uring_queue_init_params.3
528
- - vendor/liburing/man/io_uring_recvmsg_cmsg_firsthdr.3
529
- - vendor/liburing/man/io_uring_recvmsg_cmsg_nexthdr.3
530
- - vendor/liburing/man/io_uring_recvmsg_name.3
531
- - vendor/liburing/man/io_uring_recvmsg_out.3
532
- - vendor/liburing/man/io_uring_recvmsg_payload.3
533
- - vendor/liburing/man/io_uring_recvmsg_payload_length.3
534
- - vendor/liburing/man/io_uring_recvmsg_validate.3
535
- - vendor/liburing/man/io_uring_register.2
536
- - vendor/liburing/man/io_uring_register_buf_ring.3
537
- - vendor/liburing/man/io_uring_register_buffers.3
538
- - vendor/liburing/man/io_uring_register_buffers_sparse.3
539
- - vendor/liburing/man/io_uring_register_buffers_tags.3
540
- - vendor/liburing/man/io_uring_register_buffers_update_tag.3
541
- - vendor/liburing/man/io_uring_register_eventfd.3
542
- - vendor/liburing/man/io_uring_register_eventfd_async.3
543
- - vendor/liburing/man/io_uring_register_file_alloc_range.3
544
- - vendor/liburing/man/io_uring_register_files.3
545
- - vendor/liburing/man/io_uring_register_files_sparse.3
546
- - vendor/liburing/man/io_uring_register_files_tags.3
547
- - vendor/liburing/man/io_uring_register_files_update.3
548
- - vendor/liburing/man/io_uring_register_files_update_tag.3
549
- - vendor/liburing/man/io_uring_register_iowq_aff.3
550
- - vendor/liburing/man/io_uring_register_iowq_max_workers.3
551
- - vendor/liburing/man/io_uring_register_ring_fd.3
552
- - vendor/liburing/man/io_uring_register_sync_cancel.3
553
- - vendor/liburing/man/io_uring_setup.2
554
- - vendor/liburing/man/io_uring_sq_ready.3
555
- - vendor/liburing/man/io_uring_sq_space_left.3
556
- - vendor/liburing/man/io_uring_sqe_set_data.3
557
- - vendor/liburing/man/io_uring_sqe_set_data64.3
558
- - vendor/liburing/man/io_uring_sqe_set_flags.3
559
- - vendor/liburing/man/io_uring_sqring_wait.3
560
- - vendor/liburing/man/io_uring_submit.3
561
- - vendor/liburing/man/io_uring_submit_and_get_events.3
562
- - vendor/liburing/man/io_uring_submit_and_wait.3
563
- - vendor/liburing/man/io_uring_submit_and_wait_timeout.3
564
- - vendor/liburing/man/io_uring_unregister_buf_ring.3
565
- - vendor/liburing/man/io_uring_unregister_buffers.3
566
- - vendor/liburing/man/io_uring_unregister_eventfd.3
567
- - vendor/liburing/man/io_uring_unregister_files.3
568
- - vendor/liburing/man/io_uring_unregister_iowq_aff.3
569
- - vendor/liburing/man/io_uring_unregister_ring_fd.3
570
- - vendor/liburing/man/io_uring_wait_cqe.3
571
- - vendor/liburing/man/io_uring_wait_cqe_nr.3
572
- - vendor/liburing/man/io_uring_wait_cqe_timeout.3
573
- - vendor/liburing/man/io_uring_wait_cqes.3
574
458
  - vendor/liburing/src/Makefile
575
459
  - vendor/liburing/src/arch/aarch64/lib.h
576
460
  - vendor/liburing/src/arch/aarch64/syscall.h
@@ -1 +0,0 @@
1
- io_uring_check_version.3
@@ -1 +0,0 @@
1
- io_uring_check_version.3
@@ -1 +0,0 @@
1
- io_uring_check_version.3