Skip to content

Commit 1aa9622

Browse files
author
Petr Chalupa
authored
Merge pull request #615 from pitr-ch/master
Trigger execution of flattened delayed futures
2 parents 54c52f0 + bee2f74 commit 1aa9622

File tree

2 files changed

+5
-0
lines changed

2 files changed

+5
-0
lines changed

lib/concurrent/edge/future.rb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1180,6 +1180,7 @@ def process_on_done(future)
11801180
value = internal_state.value
11811181
case value
11821182
when Future
1183+
value.touch if self.future.touched
11831184
@BlockedBy.push value
11841185
value.add_callback :callback_notify_blocked, self
11851186
@Countdown.value

spec/concurrent/edge/future_spec.rb

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -378,6 +378,10 @@
378378
f = Concurrent.future { Concurrent.completed_event }.flat
379379
expect(f.reason).to be_an_instance_of TypeError
380380
end
381+
382+
it 'propagates requests for values to delayed futures' do
383+
expect(Concurrent.future { Concurrent.delay { 1 } }.flat.value!(0.1)).to eq 1
384+
end
381385
end
382386

383387
it 'completes future when Exception raised' do

0 commit comments

Comments
 (0)