Methods

Instance Public methods

done_running()

📝 Source code
# File activesupport/lib/active_support/dependencies/interlock.rb, line 36
      def done_running
        @lock.stop_sharing
      end
🔎 See on GitHub

done_unloading()

📝 Source code
# File activesupport/lib/active_support/dependencies/interlock.rb, line 28
      def done_unloading
        @lock.stop_exclusive(compatible: [:load, :unload])
      end
🔎 See on GitHub

loading()

📝 Source code
# File activesupport/lib/active_support/dependencies/interlock.rb, line 12
      def loading
        @lock.exclusive(purpose: :load, compatible: [:load], after_compatible: [:load]) do
          yield
        end
      end
🔎 See on GitHub

permit_concurrent_loads()

📝 Source code
# File activesupport/lib/active_support/dependencies/interlock.rb, line 46
      def permit_concurrent_loads
        @lock.yield_shares(compatible: [:load]) do
          yield
        end
      end
🔎 See on GitHub

running()

📝 Source code
# File activesupport/lib/active_support/dependencies/interlock.rb, line 40
      def running
        @lock.sharing do
          yield
        end
      end
🔎 See on GitHub

start_running()

📝 Source code
# File activesupport/lib/active_support/dependencies/interlock.rb, line 32
      def start_running
        @lock.start_sharing
      end
🔎 See on GitHub

start_unloading()

📝 Source code
# File activesupport/lib/active_support/dependencies/interlock.rb, line 24
      def start_unloading
        @lock.start_exclusive(purpose: :unload, compatible: [:load, :unload])
      end
🔎 See on GitHub

unloading()

📝 Source code
# File activesupport/lib/active_support/dependencies/interlock.rb, line 18
      def unloading
        @lock.exclusive(purpose: :unload, compatible: [:load, :unload], after_compatible: [:load, :unload]) do
          yield
        end
      end
🔎 See on GitHub