diff --git a/lib/mspec/matchers/block_caller.rb b/lib/mspec/matchers/block_caller.rb index 017bce3c..41495867 100644 --- a/lib/mspec/matchers/block_caller.rb +++ b/lib/mspec/matchers/block_caller.rb @@ -10,7 +10,11 @@ def matches?(block) blocking = false end - while !started and status = thread.status and status != "sleep" + Thread.pass while !started + + # Wait until the Thread status is "sleep" (then it's blocking) + # or nil (the Thread finished execution, it did not block) + while status = thread.status and status != "sleep" Thread.pass end thread.kill