Skip to content

Commit f7eb822

Browse files
committed
Fix a reace condition in FutureResult#instrument
We must wait until the event is fully recorded before adding it to the list, otherwise it might be flushed while incomplete.
1 parent c13b82a commit f7eb822

File tree

1 file changed

+5
-2
lines changed

1 file changed

+5
-2
lines changed

activerecord/lib/active_record/future_result.rb

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,8 +32,11 @@ def initialize(future_result, instrumenter)
3232

3333
def instrument(name, payload = {}, &block)
3434
event = @instrumenter.new_event(name, payload)
35-
@events << event
36-
event.record(&block)
35+
begin
36+
event.record(&block)
37+
ensure
38+
@events << event
39+
end
3740
end
3841

3942
def flush

0 commit comments

Comments
 (0)