async-limiter 1.5.1 → 1.5.2
Sign up to get free protection for your applications and to get access to all the features.
- 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
|