async 2.10.2 → 2.11.0
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
- checksums.yaml.gz.sig +0 -0
- data/lib/async/barrier.md +2 -2
- data/lib/async/condition.md +3 -3
- data/lib/async/scheduler.rb +2 -2
- data/lib/async/semaphore.md +2 -2
- data/lib/async/task.rb +6 -5
- data/lib/async/version.rb +1 -1
- data/lib/async/waiter.md +1 -1
- data.tar.gz.sig +0 -0
- metadata +10 -4
- metadata.gz.sig +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 43ab9833acc38ebf7eff4ef5e37401c5d9aff7f668eb71e77547666c1ddee9b8
|
4
|
+
data.tar.gz: f18b2eec51ff8bb163b91e6ed5583a8bbbbc0a985ff35738ae0c79aa37913687
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f07fafe843aea1930627b51f1dd4ba3c0a698f960282381a09c6955a79aeb5ab774d0f89b9680a4cf9bd84fa15c8a50fe9b2bce8bce0c5e6f0e655cbfe39988e
|
7
|
+
data.tar.gz: b4ec7cfe3d51ed349f72993b862a01738341a0603833df75188dd8a43d714e1b1ede85f97bcbaebe17027a4cd1992d1cb617d41d4773b04da447080701e94a71
|
checksums.yaml.gz.sig
CHANGED
Binary file
|
data/lib/async/barrier.md
CHANGED
@@ -9,7 +9,7 @@ require 'async/barrier'
|
|
9
9
|
|
10
10
|
barrier = Async::Barrier.new
|
11
11
|
Sync do
|
12
|
-
Console.
|
12
|
+
Console.info("Barrier Example: sleep sort.")
|
13
13
|
|
14
14
|
# Generate an array of 10 numbers:
|
15
15
|
numbers = 10.times.map{rand(10)}
|
@@ -26,7 +26,7 @@ Sync do
|
|
26
26
|
# Wait for all the numbers to be sorted:
|
27
27
|
barrier.wait
|
28
28
|
|
29
|
-
Console.
|
29
|
+
Console.info("Sorted", sorted)
|
30
30
|
ensure
|
31
31
|
# Ensure all the tasks are stopped when we exit:
|
32
32
|
barrier.stop
|
data/lib/async/condition.md
CHANGED
@@ -9,14 +9,14 @@ Sync do
|
|
9
9
|
condition = Async::Condition.new
|
10
10
|
|
11
11
|
Async do
|
12
|
-
Console.
|
12
|
+
Console.info "Waiting for condition..."
|
13
13
|
value = condition.wait
|
14
|
-
Console.
|
14
|
+
Console.info "Condition was signalled: #{value}"
|
15
15
|
end
|
16
16
|
|
17
17
|
Async do |task|
|
18
18
|
task.sleep(1)
|
19
|
-
Console.
|
19
|
+
Console.info "Signalling condition..."
|
20
20
|
condition.signal("Hello World")
|
21
21
|
end
|
22
22
|
end
|
data/lib/async/scheduler.rb
CHANGED
@@ -369,7 +369,7 @@ module Async
|
|
369
369
|
|
370
370
|
return initial_task
|
371
371
|
ensure
|
372
|
-
Console.
|
372
|
+
Console.debug(self) {"Exiting run-loop because #{$! ? $! : 'finished'}."}
|
373
373
|
end
|
374
374
|
|
375
375
|
# Start an asynchronous task within the specified reactor. The task will be
|
@@ -395,7 +395,7 @@ module Async
|
|
395
395
|
# - Avoid scheduler overhead if no blocking operation is performed.
|
396
396
|
task.run(*arguments)
|
397
397
|
|
398
|
-
# Console.
|
398
|
+
# Console.debug "Initial execution of task #{fiber} complete (#{result} -> #{fiber.alive?})..."
|
399
399
|
return task
|
400
400
|
end
|
401
401
|
|
data/lib/async/semaphore.md
CHANGED
@@ -17,9 +17,9 @@ Sync do
|
|
17
17
|
# Search for the terms:
|
18
18
|
terms.each do |term|
|
19
19
|
semaphore.async do |task|
|
20
|
-
Console.
|
20
|
+
Console.info("Searching for #{term}...")
|
21
21
|
response = Net::HTTP.get(URI "https://www.google.com/search?q=#{term}")
|
22
|
-
Console.
|
22
|
+
Console.info("Got response #{response.size} bytes.")
|
23
23
|
end
|
24
24
|
end
|
25
25
|
end
|
data/lib/async/task.rb
CHANGED
@@ -8,6 +8,7 @@
|
|
8
8
|
# Copyright, 2023, by Math Ieu.
|
9
9
|
|
10
10
|
require 'fiber'
|
11
|
+
require 'console/event/failure'
|
11
12
|
|
12
13
|
require_relative 'node'
|
13
14
|
require_relative 'condition'
|
@@ -335,15 +336,15 @@ module Async
|
|
335
336
|
raise exception
|
336
337
|
elsif @finished.nil?
|
337
338
|
# If no one has called wait, we log this as a warning:
|
338
|
-
Console.
|
339
|
+
Console::Event::Failure.for(exception).emit(self, "Task may have ended with unhandled exception.", severity: :warn)
|
339
340
|
else
|
340
|
-
Console.
|
341
|
+
Console::Event::Failure.for(exception).emit(self, severity: :debug)
|
341
342
|
end
|
342
343
|
end
|
343
344
|
end
|
344
345
|
|
345
346
|
def stopped!
|
346
|
-
# Console.
|
347
|
+
# Console.info(self, status:) {"Task #{self} was stopped with #{@children&.size.inspect} children!"}
|
347
348
|
@status = :stopped
|
348
349
|
|
349
350
|
stopped = false
|
@@ -374,7 +375,7 @@ module Async
|
|
374
375
|
|
375
376
|
begin
|
376
377
|
completed!(yield)
|
377
|
-
# Console.
|
378
|
+
# Console.debug(self) {"Task was completed with #{@children.size} children!"}
|
378
379
|
rescue Stop
|
379
380
|
stopped!
|
380
381
|
rescue StandardError => error
|
@@ -382,7 +383,7 @@ module Async
|
|
382
383
|
rescue Exception => exception
|
383
384
|
failed!(exception, true)
|
384
385
|
ensure
|
385
|
-
# Console.
|
386
|
+
# Console.info(self) {"Task ensure $! = #{$!} with #{@children&.size.inspect} children!"}
|
386
387
|
finish!
|
387
388
|
end
|
388
389
|
end
|
data/lib/async/version.rb
CHANGED
data/lib/async/waiter.md
CHANGED
data.tar.gz.sig
CHANGED
Binary file
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: async
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.11.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Samuel Williams
|
@@ -62,7 +62,7 @@ cert_chain:
|
|
62
62
|
Q2K9NVun/S785AP05vKkXZEFYxqG6EW012U4oLcFl5MySFajYXRYbuUpH6AY+HP8
|
63
63
|
voD0MPg1DssDLKwXyt1eKD/+Fq0bFWhwVM/1XiAXL7lyYUyOq24KHgQ2Csg=
|
64
64
|
-----END CERTIFICATE-----
|
65
|
-
date: 2024-04
|
65
|
+
date: 2024-05-04 00:00:00.000000000 Z
|
66
66
|
dependencies:
|
67
67
|
- !ruby/object:Gem::Dependency
|
68
68
|
name: console
|
@@ -70,14 +70,20 @@ dependencies:
|
|
70
70
|
requirements:
|
71
71
|
- - "~>"
|
72
72
|
- !ruby/object:Gem::Version
|
73
|
-
version: '1.
|
73
|
+
version: '1.25'
|
74
|
+
- - ">="
|
75
|
+
- !ruby/object:Gem::Version
|
76
|
+
version: 1.25.2
|
74
77
|
type: :runtime
|
75
78
|
prerelease: false
|
76
79
|
version_requirements: !ruby/object:Gem::Requirement
|
77
80
|
requirements:
|
78
81
|
- - "~>"
|
79
82
|
- !ruby/object:Gem::Version
|
80
|
-
version: '1.
|
83
|
+
version: '1.25'
|
84
|
+
- - ">="
|
85
|
+
- !ruby/object:Gem::Version
|
86
|
+
version: 1.25.2
|
81
87
|
- !ruby/object:Gem::Dependency
|
82
88
|
name: fiber-annotation
|
83
89
|
requirement: !ruby/object:Gem::Requirement
|
metadata.gz.sig
CHANGED
Binary file
|