async 1.28.5 → 1.28.6

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 6b33ec5d0d22925d752f11766c464b87a53a32368b8325f80142fe82cb9237f4
4
- data.tar.gz: 5bff146f715773a0e7f51e57f3879f71264e9b05beefaedaee8be8bc2022fd69
3
+ metadata.gz: 6f37f30a9b3c4eecb9dd393813bd30545b4c9e07529be6fda43f50c63c35bc53
4
+ data.tar.gz: 12e98fb9b1758199fd7e06a1ae4ac1e6b696844ceb42f75827905bd216a2b9fa
5
5
  SHA512:
6
- metadata.gz: 991a081bc1ca6f54b26f1d3e2e4f3d174fd18265161722d5e220c65dad1215eefb51bb9e511b1a0b16c1b1a89f2189f9284c3eec089d2091a858623ef4d64b82
7
- data.tar.gz: 2d00555269320cd962d2b6993ed73b706f896467e2259fe20777d1035c7ab13bc904e53ff33ee8f83416b532db5f9fa0efcd00f7efe9b001e9c51e7688ba706e
6
+ metadata.gz: bf2e4696aae38b3c9e61ea1cba7c9eb115bab9646eae5e68459cc6f82a4b9e34010a6bd111f5983c2e902dd1f8db2ffafae56d3b520698d923cabf539ed35f39
7
+ data.tar.gz: c71f02fa817c1d21dbefe64ade8aea5cbdfc410550c46aee478fa36a040e099a6ac137d59c32f591acc1d3aed67c23bf6b0e0e89d7f0a84fbadc9c10710fdd54
data/lib/async/reactor.rb CHANGED
@@ -223,7 +223,7 @@ module Async
223
223
  @running.clear
224
224
  end
225
225
 
226
- unless @blocked.zero?
226
+ if @unblocked.any?
227
227
  unblocked = Array.new
228
228
 
229
229
  @guard.synchronize do
@@ -34,24 +34,20 @@ module Async
34
34
 
35
35
  def initialize(reactor)
36
36
  @reactor = reactor
37
- @wrappers = nil
38
37
  end
39
38
 
39
+ attr :wrappers
40
+
40
41
  def set!
41
- @wrappers = {}
42
42
  Fiber.set_scheduler(self)
43
43
  end
44
44
 
45
45
  def clear!
46
- # Because these instances are created with `autoclose: false`, this does not close the underlying file descriptor:
47
- # @ios&.each_value(&:close)
48
-
49
- @wrappers = nil
50
46
  Fiber.set_scheduler(nil)
51
47
  end
52
48
 
53
49
  private def from_io(io)
54
- @wrappers[io] ||= Wrapper.new(io, @reactor)
50
+ Wrapper.new(io, @reactor)
55
51
  end
56
52
 
57
53
  def io_wait(io, events, timeout = nil)
data/lib/async/task.rb CHANGED
@@ -72,14 +72,14 @@ module Async
72
72
  # Create a new task.
73
73
  # @param reactor [Async::Reactor] the reactor this task will run within.
74
74
  # @param parent [Async::Task] the parent task.
75
- def initialize(reactor, parent = Task.current?, logger: nil, **options, &block)
75
+ def initialize(reactor, parent = Task.current?, logger: nil, finished: nil, **options, &block)
76
76
  super(parent || reactor, **options)
77
77
 
78
78
  @reactor = reactor
79
79
 
80
80
  @status = :initialized
81
81
  @result = nil
82
- @finished = nil
82
+ @finished = finished
83
83
 
84
84
  @logger = logger
85
85
 
data/lib/async/version.rb CHANGED
@@ -21,5 +21,5 @@
21
21
  # THE SOFTWARE.
22
22
 
23
23
  module Async
24
- VERSION = "1.28.5"
24
+ VERSION = "1.28.6"
25
25
  end
data/lib/kernel/sync.rb CHANGED
@@ -28,7 +28,10 @@ module Kernel
28
28
  if task = ::Async::Task.current?
29
29
  yield task
30
30
  else
31
- ::Async::Reactor.run(&block).wait
31
+ ::Async::Reactor.run(
32
+ finished: ::Async::Condition.new,
33
+ &block
34
+ ).wait
32
35
  end
33
36
  end
34
37
  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.5
4
+ version: 1.28.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Samuel Williams
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-01-28 00:00:00.000000000 Z
11
+ date: 2021-02-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: console