You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
gentoo-full-overlay/dev-ruby/async/files/async-1.31.0-improve-robust...

50 lines
1.1 KiB

https://github.com/socketry/async/commit/8f590415c08943372e0227f01d3c32e92dbcbed0
https://github.com/socketry/async/issues/218
From 8f590415c08943372e0227f01d3c32e92dbcbed0 Mon Sep 17 00:00:00 2001
From: Samuel Williams <samuel.williams@oriontransfer.co.nz>
Date: Sun, 12 Mar 2023 20:33:48 +1300
Subject: [PATCH] Improve robustness of test, fixes #218.
--- a/spec/async/semaphore_spec.rb
+++ b/spec/async/semaphore_spec.rb
@@ -62,7 +62,7 @@
3.times.map do |i|
semaphore.async do |task|
order << i
- task.sleep(0.1)
+ task.yield
order << i
end
end.collect(&:result)
@@ -72,17 +72,22 @@
it 'allows tasks to execute concurrently' do
semaphore = Async::Semaphore.new(3)
- order = []
+ concurrency = 0
+ latch = Async::Condition.new
3.times.map do |i|
semaphore.async do |task|
- order << i
- task.sleep(0.1)
- order << i
+ concurrency += 1
+
+ if concurrency == 3
+ latch.signal
+ else
+ latch.wait
+ end
end
- end.collect(&:result)
+ end.each(&:wait)
- expect(order).to be == [0, 1, 2, 0, 1, 2]
+ expect(concurrency).to be == 3
end
end