async 1.28.0 → 1.28.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e7dacbad60b89b492fe3741aa5f61240c8bc1f2d9f23e242c7eadd80cc7d9d38
4
- data.tar.gz: a8193d5ec289670c5ca4a795e905ffd660aa57edaac8796e58c3db8b866fa340
3
+ metadata.gz: 6b33ec5d0d22925d752f11766c464b87a53a32368b8325f80142fe82cb9237f4
4
+ data.tar.gz: 5bff146f715773a0e7f51e57f3879f71264e9b05beefaedaee8be8bc2022fd69
5
5
  SHA512:
6
- metadata.gz: de1a9942175a329082d388b280d63c80f614a99145d0df8b6b39e7a4b31d2cb7af4a91bad643f408eeebe6b72807d3f50093528aa5bac273daef67cbb25b3b97
7
- data.tar.gz: 206be83fe80c466b12669ad847b041e60f27c21d32f82995e7350385f50d990abe94cfbd701a86717532936d7b6ad1e495df78f45a3c0972e2c70b6647824528
6
+ metadata.gz: 991a081bc1ca6f54b26f1d3e2e4f3d174fd18265161722d5e220c65dad1215eefb51bb9e511b1a0b16c1b1a89f2189f9284c3eec089d2091a858623ef4d64b82
7
+ data.tar.gz: 2d00555269320cd962d2b6993ed73b706f896467e2259fe20777d1035c7ab13bc904e53ff33ee8f83416b532db5f9fa0efcd00f7efe9b001e9c51e7688ba706e
@@ -34,6 +34,10 @@ module Async
34
34
 
35
35
  attr :items
36
36
 
37
+ def size
38
+ @items.size
39
+ end
40
+
37
41
  def empty?
38
42
  @items.empty?
39
43
  end
@@ -102,7 +102,7 @@ module Async
102
102
  fiber = Fiber.current
103
103
 
104
104
  if timeout
105
- timer = self.after(timeout) do
105
+ timer = @timers.after(timeout) do
106
106
  if fiber.alive?
107
107
  fiber.resume(false)
108
108
  end
@@ -57,13 +57,13 @@ module Async
57
57
  def io_wait(io, events, timeout = nil)
58
58
  wrapper = from_io(io)
59
59
 
60
- if events == IO::READABLE
60
+ if events == ::IO::READABLE
61
61
  if wrapper.wait_readable(timeout)
62
- return IO::READABLE
62
+ return ::IO::READABLE
63
63
  end
64
- elsif events == IO::WRITABLE
64
+ elsif events == ::IO::WRITABLE
65
65
  if wrapper.wait_writable(timeout)
66
- return IO::WRITABLE
66
+ return ::IO::WRITABLE
67
67
  end
68
68
  else
69
69
  if wrapper.wait_any(timeout)
@@ -82,12 +82,12 @@ module Async
82
82
  # @returns [Process::Status] A process status instance.
83
83
  def process_wait(pid, flags)
84
84
  Thread.new do
85
- Process::Status.wait(pid, flags)
85
+ ::Process::Status.wait(pid, flags)
86
86
  end.value
87
87
  end
88
88
 
89
89
  def kernel_sleep(duration)
90
- @reactor.sleep(duration)
90
+ self.block(nil, duration)
91
91
  end
92
92
 
93
93
  def block(blocker, timeout)
@@ -102,11 +102,13 @@ module Async
102
102
  end
103
103
 
104
104
  def fiber(&block)
105
- task = Task.new(&block)
105
+ task = Task.new(@reactor, &block)
106
106
 
107
- task.resume
107
+ fiber = task.fiber
108
108
 
109
- return task.fiber
109
+ task.run
110
+
111
+ return fiber
110
112
  end
111
113
  end
112
114
  end
@@ -88,7 +88,7 @@ module Async
88
88
 
89
89
  if Fiber.current.respond_to?(:backtrace)
90
90
  def backtrace(*arguments)
91
- @fiber.backtrace(*arguments)
91
+ @fiber&.backtrace(*arguments)
92
92
  end
93
93
  end
94
94
 
@@ -21,5 +21,5 @@
21
21
  # THE SOFTWARE.
22
22
 
23
23
  module Async
24
- VERSION = "1.28.0"
24
+ VERSION = "1.28.5"
25
25
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: async
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.28.0
4
+ version: 1.28.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Samuel Williams
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-12-24 00:00:00.000000000 Z
11
+ date: 2021-01-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: console