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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: fb03fc864de09582936ff16e60cd9a214020f66606ae489b09c673f5076d37e6
4
- data.tar.gz: 6ec875d4dd7afa21bdde41d12b61f51b4898e93b644d2d90abea339c64810ae7
3
+ metadata.gz: 180ea4ebb784a29df337fe94e8190358482658fd07547ccaeaddc0974b271696
4
+ data.tar.gz: b02a1c5978f4b14e103852bbaa3685d8e1258b6d0190d1bb1e3c157a18b786e9
5
5
  SHA512:
6
- metadata.gz: cde5a1bf23dadac86d333e8a43d6379df264ddd45684ea16aeba0b59f0c3141f9170bb70b37139a3868391c28fcb8a8e48f63399356a9fbacabd89fc369d39c7
7
- data.tar.gz: 7b5b82b3141d057099b2f8fee90ce1d15ef56492106f44a751df64ad2a881098a4f43437d381d8f8753bbc4d9386c2a044d97a0542c4090320f9d91a7068c6e0
6
+ metadata.gz: e0cd30fb437861e2077f1d15bd39a2bd9314ac64a7d48d2d303302a2c13c875cae02f042ad0d93531bf125475b62c1cc1b2e532279b044623f0b7b8765732bbb
7
+ data.tar.gz: abd67afa695c11d045f176cf5371046238050f951626cc5bc2f2b10a484ff567cd63e26ceb8b9896fb052b55682081d9bc421e9d6e489cdbc34c68fee38bc922
@@ -1,5 +1,5 @@
1
1
  module Async
2
2
  module Limiter
3
- VERSION = "1.5.1"
3
+ VERSION = "1.5.2"
4
4
  end
5
5
  end
@@ -58,7 +58,7 @@ module Async
58
58
 
59
59
  def sync(*queue_args)
60
60
  acquire(*queue_args) do
61
- yield(@parent || Task.current)
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
- parent.async(transient: true) { |task|
182
- task.annotate("scheduling tasks for #{self.class}.")
183
-
184
- while @waiting.any? && !limit_blocking?
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
- @scheduler = nil
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.1
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: 2020-11-20 00:00:00.000000000 Z
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.0.rc.1
117
+ rubygems_version: 3.2.3
118
118
  signing_key:
119
119
  specification_version: 4
120
120
  summary: Async limiters