async 2.15.1 → 2.15.3
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/task.rb +21 -12
 - data/lib/async/version.rb +1 -1
 - data.tar.gz.sig +0 -0
 - metadata +2 -2
 - 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: f7830bab72d5bdd68def8fe84b914785f191e29dc3f2d0b8f6d58d91878ff72d
         
     | 
| 
      
 4 
     | 
    
         
            +
              data.tar.gz: c54b09d668152d3183ab8b366b75cc09c0e441a54914540896326e87b09a5fe7
         
     | 
| 
       5 
5 
     | 
    
         
             
            SHA512:
         
     | 
| 
       6 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       7 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 6 
     | 
    
         
            +
              metadata.gz: 512e6fd4c720c19817bc95db9a7eb85f710314834cc655c9c1e43bac98831aab0802f9ef568de8e2308d1bb0a0304d6f3f4e2e8a465561ec20f79ac2644246d8
         
     | 
| 
      
 7 
     | 
    
         
            +
              data.tar.gz: a0b8dae781660179da1a6ca0b766cbfdba8089684931cc95ea17e1dbf17667b96b34386e50fdceea97768af511dbbc6bbf90140c1027f53adc4db0a81e7d23bc
         
     | 
    
        checksums.yaml.gz.sig
    CHANGED
    
    | 
         Binary file 
     | 
    
        data/lib/async/task.rb
    CHANGED
    
    | 
         @@ -253,18 +253,18 @@ module Async 
     | 
|
| 
       253 
253 
     | 
    
         
             
            				return stopped!
         
     | 
| 
       254 
254 
     | 
    
         
             
            			end
         
     | 
| 
       255 
255 
     | 
    
         | 
| 
       256 
     | 
    
         
            -
            			# If we are deferring stop...
         
     | 
| 
       257 
     | 
    
         
            -
            			if @defer_stop == false
         
     | 
| 
       258 
     | 
    
         
            -
            				# Don't stop now... but update the state so we know we need to stop later.
         
     | 
| 
       259 
     | 
    
         
            -
            				@defer_stop = true
         
     | 
| 
       260 
     | 
    
         
            -
            				return false
         
     | 
| 
       261 
     | 
    
         
            -
            			end
         
     | 
| 
       262 
     | 
    
         
            -
            			
         
     | 
| 
       263 
256 
     | 
    
         
             
            			# If the fiber is alive, we need to stop it:
         
     | 
| 
       264 
257 
     | 
    
         
             
            			if @fiber&.alive?
         
     | 
| 
       265 
258 
     | 
    
         
             
            				# As the task is now exiting, we want to ensure the event loop continues to execute until the task finishes.
         
     | 
| 
       266 
259 
     | 
    
         
             
            				self.transient = false
         
     | 
| 
       267 
260 
     | 
    
         | 
| 
      
 261 
     | 
    
         
            +
            				# If we are deferring stop...
         
     | 
| 
      
 262 
     | 
    
         
            +
            				if @defer_stop == false
         
     | 
| 
      
 263 
     | 
    
         
            +
            					# Don't stop now... but update the state so we know we need to stop later.
         
     | 
| 
      
 264 
     | 
    
         
            +
            					@defer_stop = true
         
     | 
| 
      
 265 
     | 
    
         
            +
            					return false
         
     | 
| 
      
 266 
     | 
    
         
            +
            				end
         
     | 
| 
      
 267 
     | 
    
         
            +
            				
         
     | 
| 
       268 
268 
     | 
    
         
             
            				if self.current?
         
     | 
| 
       269 
269 
     | 
    
         
             
            					# If the fiber is current, and later is `true`, we need to schedule the fiber to be stopped later, as it's currently invoking `stop`:
         
     | 
| 
       270 
270 
     | 
    
         
             
            					if later
         
     | 
| 
         @@ -304,19 +304,23 @@ module Async 
     | 
|
| 
       304 
304 
     | 
    
         
             
            			# - false: defer_stop has been called and we are not stopping.
         
     | 
| 
       305 
305 
     | 
    
         
             
            			# - true: defer_stop has been called and we will stop when exiting the block.
         
     | 
| 
       306 
306 
     | 
    
         
             
            			if @defer_stop.nil?
         
     | 
| 
       307 
     | 
    
         
            -
            				# If we are not deferring stop already, we can defer it now:
         
     | 
| 
       308 
     | 
    
         
            -
            				@defer_stop = false
         
     | 
| 
       309 
     | 
    
         
            -
            				
         
     | 
| 
       310 
307 
     | 
    
         
             
            				begin
         
     | 
| 
      
 308 
     | 
    
         
            +
            					# If we are not deferring stop already, we can defer it now:
         
     | 
| 
      
 309 
     | 
    
         
            +
            					@defer_stop = false
         
     | 
| 
      
 310 
     | 
    
         
            +
            					
         
     | 
| 
       311 
311 
     | 
    
         
             
            					yield
         
     | 
| 
       312 
312 
     | 
    
         
             
            				rescue Stop
         
     | 
| 
       313 
313 
     | 
    
         
             
            					# If we are exiting due to a stop, we shouldn't try to invoke stop again:
         
     | 
| 
       314 
314 
     | 
    
         
             
            					@defer_stop = nil
         
     | 
| 
       315 
315 
     | 
    
         
             
            					raise
         
     | 
| 
       316 
316 
     | 
    
         
             
            				ensure
         
     | 
| 
      
 317 
     | 
    
         
            +
            					defer_stop = @defer_stop
         
     | 
| 
      
 318 
     | 
    
         
            +
            					
         
     | 
| 
      
 319 
     | 
    
         
            +
            					# We need to ensure the state is reset before we exit the block:
         
     | 
| 
      
 320 
     | 
    
         
            +
            					@defer_stop = nil
         
     | 
| 
      
 321 
     | 
    
         
            +
            					
         
     | 
| 
       317 
322 
     | 
    
         
             
            					# If we were asked to stop, we should do so now:
         
     | 
| 
       318 
     | 
    
         
            -
            					if  
     | 
| 
       319 
     | 
    
         
            -
            						@defer_stop = nil
         
     | 
| 
      
 323 
     | 
    
         
            +
            					if defer_stop
         
     | 
| 
       320 
324 
     | 
    
         
             
            						raise Stop, "Stopping current task (was deferred)!"
         
     | 
| 
       321 
325 
     | 
    
         
             
            					end
         
     | 
| 
       322 
326 
     | 
    
         
             
            				end
         
     | 
| 
         @@ -326,6 +330,11 @@ module Async 
     | 
|
| 
       326 
330 
     | 
    
         
             
            			end
         
     | 
| 
       327 
331 
     | 
    
         
             
            		end
         
     | 
| 
       328 
332 
     | 
    
         | 
| 
      
 333 
     | 
    
         
            +
            		# @returns [Boolean] Whether stop has been deferred.
         
     | 
| 
      
 334 
     | 
    
         
            +
            		def stop_deferred?
         
     | 
| 
      
 335 
     | 
    
         
            +
            			@defer_stop
         
     | 
| 
      
 336 
     | 
    
         
            +
            		end
         
     | 
| 
      
 337 
     | 
    
         
            +
            		
         
     | 
| 
       329 
338 
     | 
    
         
             
            		# Lookup the {Task} for the current fiber. Raise `RuntimeError` if none is available.
         
     | 
| 
       330 
339 
     | 
    
         
             
            		# @returns [Task]
         
     | 
| 
       331 
340 
     | 
    
         
             
            		# @raises[RuntimeError] If task was not {set!} for the current fiber.
         
     | 
    
        data/lib/async/version.rb
    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.15. 
     | 
| 
      
 4 
     | 
    
         
            +
              version: 2.15.3
         
     | 
| 
       5 
5 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       6 
6 
     | 
    
         
             
            authors:
         
     | 
| 
       7 
7 
     | 
    
         
             
            - Samuel Williams
         
     | 
| 
         @@ -63,7 +63,7 @@ cert_chain: 
     | 
|
| 
       63 
63 
     | 
    
         
             
              Q2K9NVun/S785AP05vKkXZEFYxqG6EW012U4oLcFl5MySFajYXRYbuUpH6AY+HP8
         
     | 
| 
       64 
64 
     | 
    
         
             
              voD0MPg1DssDLKwXyt1eKD/+Fq0bFWhwVM/1XiAXL7lyYUyOq24KHgQ2Csg=
         
     | 
| 
       65 
65 
     | 
    
         
             
              -----END CERTIFICATE-----
         
     | 
| 
       66 
     | 
    
         
            -
            date: 2024-08- 
     | 
| 
      
 66 
     | 
    
         
            +
            date: 2024-08-08 00:00:00.000000000 Z
         
     | 
| 
       67 
67 
     | 
    
         
             
            dependencies:
         
     | 
| 
       68 
68 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       69 
69 
     | 
    
         
             
              name: console
         
     | 
    
        metadata.gz.sig
    CHANGED
    
    | 
         Binary file 
     |