method
blocked_by?
rails latest stable - Class:
ActionDispatch::DebugLocks
blocked_by?(victim, blocker, all_threads)private
No documentation available.
# File actionpack/lib/action_dispatch/middleware/debug_locks.rb, line 106
def blocked_by?(victim, blocker, all_threads)
return false if victim.equal?(blocker)
case victim[:sleeper]
when :start_sharing
blocker[:exclusive] ||
(!victim[:waiting] && blocker[:compatible] && !blocker[:compatible].include?(false))
when :start_exclusive
blocker[:sharing] > 0 ||
blocker[:exclusive] ||
(blocker[:compatible] && !blocker[:compatible].include?(victim[:purpose]))
when :yield_shares
blocker[:exclusive]
when :stop_exclusive
blocker[:exclusive] ||
victim[:compatible] &&
victim[:compatible].include?(blocker[:purpose]) &&
all_threads.all? { |other| !other[:compatible] || blocker.equal?(other) || other[:compatible].include?(blocker[:purpose]) }
end
end