0
@@ -32,13 +32,16 @@ module Passenger
0
# will preload and cache Ruby on Rails frameworks, as well as application
0
# code, so subsequent spawns will be very fast.
0
-# Internally, SpawnManager uses FrameworkSpawner to preload and cache
0
-# Ruby on Rails frameworks. FrameworkSpawner, in turn, uses
0
-# ApplicationSpawner to preload and cache application code.
0
+# Internally, SpawnManager uses Railz::FrameworkSpawner to preload and cache
0
+# Ruby on Rails frameworks. Railz::FrameworkSpawner, in turn, uses
0
+# Railz::ApplicationSpawner to preload and cache application code.
0
+# In case you're wondering why the namespace is "Railz" and not "Rails":
0
+# it's to work around an obscure bug in ActiveSupport's Dispatcher.
0
class SpawnManager < AbstractServer
0
FRAMEWORK_SPAWNER_MAX_IDLE_TIME = 30 * 60
0
- APP_SPAWNER_MAX_IDLE_TIME =
::Passenger::FrameworkSpawner::APP_SPAWNER_MAX_IDLE_TIME
0
+ APP_SPAWNER_MAX_IDLE_TIME =
Railz::FrameworkSpawner::APP_SPAWNER_MAX_IDLE_TIME
0
SPAWNER_CLEAN_INTERVAL = [FRAMEWORK_SPAWNER_MAX_IDLE_TIME,
0
APP_SPAWNER_MAX_IDLE_TIME].min + 5
0
@@ -60,7 +63,7 @@ class SpawnManager < AbstractServer
0
# Spawn a RoR application When successful, an Application object will be
0
# returned, which represents the spawned RoR application.
0
- # See
ApplicationSpawner.new for an explanation of the +lower_privilege+,
0
+ # See
Railz::ApplicationSpawner.new for an explanation of the +lower_privilege+,
0
# +lowest_user+ and +environment+ parameters.
0
# The +spawn_method+ argument may be one of "smart" or "conservative".
0
@@ -173,25 +176,26 @@ private
0
vendor_path = normalize_path("#{app_root}/vendor/rails")
0
key = "vendor:#{vendor_path}"
0
create_spawner = proc do
0
-
FrameworkSpawner.new(:vendor => vendor_path)
0
+
Railz::FrameworkSpawner.new(:vendor => vendor_path)
0
elsif framework_version.nil?
0
app_root = normalize_path(app_root)
0
key = "app:#{app_root}"
0
create_spawner = proc do
0
- ApplicationSpawner.new(app_root, lower_privilege, lowest_user, environment)
0
+ Railz::ApplicationSpawner.new(app_root, lower_privilege,
0
+ lowest_user, environment)
0
key = "version:#{framework_version}"
0
create_spawner = proc do
0
-
FrameworkSpawner.new(:version => framework_version)
0
+
Railz::FrameworkSpawner.new(:version => framework_version)
0
app_root = normalize_path(app_root)
0
key = "app:#{app_root}"
0
create_spawner = proc do
0
-
ApplicationSpawner.new(app_root, lower_privilege, lowest_user, environment)
0
+
Railz::ApplicationSpawner.new(app_root, lower_privilege, lowest_user, environment)
0
spawner_must_be_started = false
0
@@ -208,7 +212,7 @@ private
0
spawner.time = Time.now
0
- if spawner.is_a?(
FrameworkSpawner)
0
+ if spawner.is_a?(
Railz::FrameworkSpawner)
0
return spawner.spawn_application(app_root, lower_privilege,
0
lowest_user, environment)
0
@@ -287,7 +291,7 @@ private
0
current_time = Time.now
0
@spawners.keys.each do |key|
0
spawner = @spawners[key]
0
- if spawner.is_a?(
FrameworkSpawner)
0
+ if spawner.is_a?(
Railz::FrameworkSpawner)
0
max_idle_time = FRAMEWORK_SPAWNER_MAX_IDLE_TIME
0
max_idle_time = APP_SPAWNER_MAX_IDLE_TIME
Comments
No one has commented yet.