async-limiter 1.5.1 → 1.5.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.
- checksums.yaml +4 -4
- data/lib/async/limiter/version.rb +1 -1
- data/lib/async/limiter/window.rb +14 -12
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 180ea4ebb784a29df337fe94e8190358482658fd07547ccaeaddc0974b271696
|
4
|
+
data.tar.gz: b02a1c5978f4b14e103852bbaa3685d8e1258b6d0190d1bb1e3c157a18b786e9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e0cd30fb437861e2077f1d15bd39a2bd9314ac64a7d48d2d303302a2c13c875cae02f042ad0d93531bf125475b62c1cc1b2e532279b044623f0b7b8765732bbb
|
7
|
+
data.tar.gz: abd67afa695c11d045f176cf5371046238050f951626cc5bc2f2b10a484ff567cd63e26ceb8b9896fb052b55682081d9bc421e9d6e489cdbc34c68fee38bc922
|
data/lib/async/limiter/window.rb
CHANGED
@@ -58,7 +58,7 @@ module Async
|
|
58
58
|
|
59
59
|
def sync(*queue_args)
|
60
60
|
acquire(*queue_args) do
|
61
|
-
yield
|
61
|
+
yield Task.current
|
62
62
|
end
|
63
63
|
end
|
64
64
|
|
@@ -177,18 +177,20 @@ module Async
|
|
177
177
|
|
178
178
|
# Schedule resuming waiting tasks.
|
179
179
|
def schedule(parent: @parent || Task.current)
|
180
|
-
@scheduler
|
181
|
-
|
182
|
-
|
183
|
-
|
184
|
-
|
185
|
-
delay = [next_acquire_time - Clock.now, 0].max
|
186
|
-
task.sleep(delay) if delay.positive?
|
187
|
-
resume_waiting
|
188
|
-
end
|
180
|
+
return @scheduler if @scheduler
|
181
|
+
|
182
|
+
parent.async(transient: true) do |task|
|
183
|
+
@scheduler = task
|
184
|
+
task.annotate("scheduling tasks for #{self.class}.")
|
189
185
|
|
190
|
-
|
191
|
-
|
186
|
+
while @waiting.any? && !limit_blocking?
|
187
|
+
delay = [next_acquire_time - Clock.now, 0].max
|
188
|
+
task.sleep(delay) if delay.positive?
|
189
|
+
resume_waiting
|
190
|
+
end
|
191
|
+
ensure
|
192
|
+
@scheduler = nil
|
193
|
+
end
|
192
194
|
end
|
193
195
|
|
194
196
|
def reschedule?
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: async-limiter
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.5.
|
4
|
+
version: 1.5.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Bruno Sutic
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-01-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: async
|
@@ -114,7 +114,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
114
114
|
- !ruby/object:Gem::Version
|
115
115
|
version: '0'
|
116
116
|
requirements: []
|
117
|
-
rubygems_version: 3.2.
|
117
|
+
rubygems_version: 3.2.3
|
118
118
|
signing_key:
|
119
119
|
specification_version: 4
|
120
120
|
summary: Async limiters
|