Create a gist now

Instantly share code, notes, and snippets.

require 'thread'
m = Mutex.new
m.lock
wt2 = Thread.new do
m.lock
sleep 2
m.unlock
end
# Ensure wt2 is waiting on m
sleep 0.1
wt1 = Thread.new do
m.lock
m.unlock
end
# Ensure wt1 is waiting on m
sleep 0.1
# Give it to wt2
m.unlock
wt1.join
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment