Introduce mutex Monitor in Faraday::Test::Stubs (#1379)

Fixes #1365
This commit is contained in:
Matt 2022-01-12 15:56:25 +00:00 committed by GitHub
parent 026e9569a1
commit 996028a165
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -55,6 +55,7 @@ module Faraday
@stack = {}
@consumed = {}
@strict_mode = strict_mode
@stubs_mutex = Monitor.new
yield(self) if block_given?
end
@ -72,7 +73,10 @@ module Faraday
stub, meta = matches?(stack, env)
if stub
consumed << stack.delete(stub)
@stubs_mutex.synchronize do
removed = stack.delete(stub)
consumed << removed unless removed.nil?
end
return stub, meta
end
matches?(consumed, env)