lib/rage/rails.rb in rage-rb-1.4.0 vs lib/rage/rails.rb in rage-rb-1.6.0
- old
+ new
@@ -20,15 +20,17 @@
# patch `ActionDispatch::Reloader` to synchronize `reload!` calls
Rails.configuration.after_initialize do
conditional_mutex = Module.new do
def call(env)
- @mutex ||= Mutex.new
- if Rails.application.reloader.check!
- @mutex.synchronize { super }
+ res = if Rails.application.reloader.check! || !$rage_code_loaded
+ Fiber.new(blocking: true) { super }.resume
else
super
end
+ $rage_code_loaded = true
+
+ res
end
end
ActionDispatch::Reloader.prepend(conditional_mutex)