passenger 2.2.15 → 3.0.0.pre1

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of passenger might be problematic. Click here for more details.

Files changed (1338) hide show
  1. data/DEVELOPERS.TXT +21 -12
  2. data/LICENSE +1 -1
  3. data/NEWS +8 -1
  4. data/PACKAGING.TXT +25 -0
  5. data/Rakefile +28 -891
  6. data/bin/passenger +32 -0
  7. data/bin/passenger-config +5 -5
  8. data/bin/passenger-install-apache2-module +37 -24
  9. data/bin/passenger-install-nginx-module +48 -46
  10. data/bin/passenger-make-enterprisey +8 -9
  11. data/bin/passenger-memory-stats +20 -150
  12. data/bin/passenger-status +130 -44
  13. data/bin/passenger-stress-test +5 -4
  14. data/build/agents.rb +73 -0
  15. data/build/apache2.rb +165 -0
  16. data/build/basics.rb +81 -0
  17. data/build/common_library.rb +198 -0
  18. data/build/config.rb +35 -0
  19. data/{misc/rake/cplusplus.rb → build/cplusplus_support.rb} +1 -1
  20. data/build/cxx_tests.rb +205 -0
  21. data/build/documentation.rb +77 -0
  22. data/{misc/rake → build}/gempackagetask.rb +1 -1
  23. data/build/integration_tests.rb +57 -0
  24. data/build/misc.rb +146 -0
  25. data/build/nginx.rb +64 -0
  26. data/build/oxt_tests.rb +52 -0
  27. data/{misc/rake → build}/packagetask.rb +0 -0
  28. data/build/packaging.rb +189 -0
  29. data/{misc/rake/extensions.rb → build/rake_extensions.rb} +1 -1
  30. data/{misc/rake → build}/rdoctask.rb +0 -0
  31. data/build/ruby_extension.rb +46 -0
  32. data/build/ruby_tests.rb +42 -0
  33. data/build/test_basics.rb +31 -0
  34. data/doc/ApplicationPool algorithm.txt +447 -234
  35. data/doc/Architectural overview.html +47 -56
  36. data/doc/Doxyfile +1 -1
  37. data/doc/Security of user switching support.html +46 -57
  38. data/doc/Users guide Apache.html +1033 -306
  39. data/doc/Users guide Apache.txt +419 -99
  40. data/doc/Users guide Nginx.html +1252 -253
  41. data/doc/Users guide Nginx.txt +711 -87
  42. data/doc/Users guide Standalone.html +603 -0
  43. data/doc/Users guide Standalone.txt +40 -0
  44. data/doc/cxxapi/AbstractSpawnManager_8h_source.html +141 -0
  45. data/doc/cxxapi/Account_8h_source.html +206 -0
  46. data/doc/cxxapi/AccountsDatabase_8h_source.html +161 -0
  47. data/doc/cxxapi/AgentBase_8h_source.html +70 -0
  48. data/doc/cxxapi/AgentsStarter_8h_source.html +112 -0
  49. data/doc/cxxapi/BCrypt_8h_source.html +104 -0
  50. data/doc/cxxapi/Blowfish_8h_source.html +134 -0
  51. data/doc/cxxapi/Bucket_8h_source.html +4 -3
  52. data/doc/cxxapi/Constants_8h_source.html +79 -0
  53. data/doc/cxxapi/ContentHandler_8h_source.html +95 -0
  54. data/doc/cxxapi/DirectoryMapper_8h_source.html +9 -8
  55. data/doc/cxxapi/EventedClient_8h_source.html +629 -0
  56. data/doc/cxxapi/EventedMessageServer_8h_source.html +358 -0
  57. data/doc/cxxapi/EventedServer_8h_source.html +326 -0
  58. data/doc/cxxapi/Exceptions_8h_source.html +366 -0
  59. data/doc/cxxapi/FileDescriptor_8h_source.html +260 -0
  60. data/doc/cxxapi/Hooks_8h_source.html +2 -1
  61. data/doc/cxxapi/HttpStatusExtractor_8h_source.html +382 -0
  62. data/doc/cxxapi/Logging_8h_source.html +726 -0
  63. data/doc/cxxapi/MessageChannel_8h_source.html +852 -0
  64. data/doc/cxxapi/MessageClient_8h_source.html +328 -0
  65. data/doc/cxxapi/MessageReadersWriters_8h_source.html +539 -0
  66. data/doc/cxxapi/MessageServer_8h_source.html +606 -0
  67. data/doc/cxxapi/PoolOptions_8h_source.html +548 -0
  68. data/doc/cxxapi/Process_8h_source.html +286 -0
  69. data/doc/cxxapi/RandomGenerator_8h_source.html +191 -0
  70. data/doc/cxxapi/ResourceLocator_8h_source.html +115 -0
  71. data/doc/cxxapi/ScgiRequestParser_8h_source.html +406 -0
  72. data/doc/cxxapi/ServerInstanceDir_8h_source.html +374 -0
  73. data/doc/cxxapi/Session_8h_source.html +501 -0
  74. data/doc/cxxapi/SpawnManager_8h_source.html +647 -0
  75. data/doc/cxxapi/StaticContentHandler_8h_source.html +68 -0
  76. data/doc/cxxapi/StaticString_8h_source.html +254 -0
  77. data/doc/cxxapi/StringListCreator_8h_source.html +114 -0
  78. data/doc/cxxapi/Utils_8h_source.html +442 -0
  79. data/doc/cxxapi/annotated.html +46 -0
  80. data/doc/cxxapi/apache2_2Configuration_8h_source.html +82 -0
  81. data/doc/cxxapi/classAgentWatcher-members.html +30 -26
  82. data/doc/cxxapi/classAgentWatcher.html +168 -194
  83. data/doc/cxxapi/classClient-members.html +14 -11
  84. data/doc/cxxapi/classClient.html +35 -35
  85. data/doc/cxxapi/classHooks-members.html +2 -0
  86. data/doc/cxxapi/classHooks.html +2 -0
  87. data/doc/cxxapi/classPassenger_1_1AbstractSpawnManager-members.html +16 -13
  88. data/doc/cxxapi/classPassenger_1_1AbstractSpawnManager.html +78 -82
  89. data/doc/cxxapi/classPassenger_1_1ArgumentException-members.html +12 -9
  90. data/doc/cxxapi/classPassenger_1_1ArgumentException.html +26 -22
  91. data/doc/cxxapi/classPassenger_1_1ArrayMessage-members.html +37 -0
  92. data/doc/cxxapi/classPassenger_1_1ArrayMessage.html +113 -0
  93. data/doc/cxxapi/classPassenger_1_1BufferedUpload-members.html +14 -11
  94. data/doc/cxxapi/classPassenger_1_1BufferedUpload.html +41 -42
  95. data/doc/cxxapi/classPassenger_1_1BusyException-members.html +12 -9
  96. data/doc/cxxapi/classPassenger_1_1BusyException.html +24 -20
  97. data/doc/cxxapi/classPassenger_1_1ConfigurationException-members.html +12 -9
  98. data/doc/cxxapi/classPassenger_1_1ConfigurationException.html +23 -19
  99. data/doc/cxxapi/classPassenger_1_1DirectoryMapper-members.html +2 -0
  100. data/doc/cxxapi/classPassenger_1_1DirectoryMapper.html +8 -6
  101. data/doc/cxxapi/classPassenger_1_1EOFException-members.html +12 -9
  102. data/doc/cxxapi/classPassenger_1_1EOFException.html +27 -23
  103. data/doc/cxxapi/classPassenger_1_1EventFd-members.html +12 -9
  104. data/doc/cxxapi/classPassenger_1_1EventFd.html +24 -21
  105. data/doc/cxxapi/classPassenger_1_1EventedClient-members.html +54 -0
  106. data/doc/cxxapi/classPassenger_1_1EventedClient.html +436 -0
  107. data/doc/cxxapi/classPassenger_1_1EventedMessageServer-members.html +37 -0
  108. data/doc/cxxapi/classPassenger_1_1EventedMessageServer.html +59 -0
  109. data/doc/cxxapi/classPassenger_1_1EventedMessageServer__inherit__graph.map +3 -0
  110. data/doc/cxxapi/classPassenger_1_1EventedMessageServer__inherit__graph.md5 +1 -0
  111. data/doc/cxxapi/classPassenger_1_1EventedMessageServer__inherit__graph.png +0 -0
  112. data/doc/cxxapi/classPassenger_1_1EventedServer-members.html +37 -0
  113. data/doc/cxxapi/classPassenger_1_1EventedServer.html +93 -0
  114. data/doc/cxxapi/classPassenger_1_1EventedServer__inherit__graph.map +3 -0
  115. data/doc/cxxapi/classPassenger_1_1EventedServer__inherit__graph.md5 +1 -0
  116. data/doc/cxxapi/classPassenger_1_1EventedServer__inherit__graph.png +0 -0
  117. data/doc/cxxapi/classPassenger_1_1FileDescriptor-members.html +16 -13
  118. data/doc/cxxapi/classPassenger_1_1FileDescriptor.html +63 -70
  119. data/doc/cxxapi/classPassenger_1_1FileNotFoundException-members.html +12 -9
  120. data/doc/cxxapi/classPassenger_1_1FileNotFoundException.html +26 -22
  121. data/doc/cxxapi/classPassenger_1_1FileSystemException-members.html +17 -14
  122. data/doc/cxxapi/classPassenger_1_1FileSystemException.html +32 -30
  123. data/doc/cxxapi/classPassenger_1_1HttpStatusExtractor-members.html +15 -12
  124. data/doc/cxxapi/classPassenger_1_1HttpStatusExtractor.html +59 -59
  125. data/doc/cxxapi/classPassenger_1_1IOException-members.html +12 -9
  126. data/doc/cxxapi/classPassenger_1_1IOException.html +27 -23
  127. data/doc/cxxapi/classPassenger_1_1MessageChannel-members.html +36 -33
  128. data/doc/cxxapi/classPassenger_1_1MessageChannel.html +326 -344
  129. data/doc/cxxapi/classPassenger_1_1MessageServer-members.html +25 -22
  130. data/doc/cxxapi/classPassenger_1_1MessageServer.html +160 -191
  131. data/doc/cxxapi/classPassenger_1_1MessageServer_1_1ClientContext-members.html +12 -9
  132. data/doc/cxxapi/classPassenger_1_1MessageServer_1_1ClientContext.html +29 -27
  133. data/doc/cxxapi/classPassenger_1_1MessageServer_1_1ClientContext__inherit__graph.map +3 -1
  134. data/doc/cxxapi/classPassenger_1_1MessageServer_1_1ClientContext__inherit__graph.md5 +1 -1
  135. data/doc/cxxapi/classPassenger_1_1MessageServer_1_1ClientContext__inherit__graph.png +0 -0
  136. data/doc/cxxapi/classPassenger_1_1MessageServer_1_1CommonClientContext-members.html +17 -14
  137. data/doc/cxxapi/classPassenger_1_1MessageServer_1_1CommonClientContext.html +69 -79
  138. data/doc/cxxapi/classPassenger_1_1MessageServer_1_1CommonClientContext__inherit__graph.map +3 -1
  139. data/doc/cxxapi/classPassenger_1_1MessageServer_1_1CommonClientContext__inherit__graph.md5 +1 -1
  140. data/doc/cxxapi/classPassenger_1_1MessageServer_1_1CommonClientContext__inherit__graph.png +0 -0
  141. data/doc/cxxapi/classPassenger_1_1MessageServer_1_1Handler-members.html +15 -12
  142. data/doc/cxxapi/classPassenger_1_1MessageServer_1_1Handler.html +60 -63
  143. data/doc/cxxapi/classPassenger_1_1Process-members.html +20 -17
  144. data/doc/cxxapi/classPassenger_1_1Process.html +88 -95
  145. data/doc/cxxapi/classPassenger_1_1RandomGenerator-members.html +13 -10
  146. data/doc/cxxapi/classPassenger_1_1RandomGenerator.html +36 -35
  147. data/doc/cxxapi/classPassenger_1_1RuntimeException-members.html +12 -9
  148. data/doc/cxxapi/classPassenger_1_1RuntimeException.html +24 -20
  149. data/doc/cxxapi/classPassenger_1_1ScalarMessage-members.html +37 -0
  150. data/doc/cxxapi/classPassenger_1_1ScalarMessage.html +76 -0
  151. data/doc/cxxapi/classPassenger_1_1ScgiRequestParser-members.html +26 -23
  152. data/doc/cxxapi/classPassenger_1_1ScgiRequestParser.html +121 -138
  153. data/doc/cxxapi/classPassenger_1_1SecurityException-members.html +12 -9
  154. data/doc/cxxapi/classPassenger_1_1SecurityException.html +26 -22
  155. data/doc/cxxapi/classPassenger_1_1Session-members.html +29 -26
  156. data/doc/cxxapi/classPassenger_1_1Session.html +219 -240
  157. data/doc/cxxapi/classPassenger_1_1SpawnException-members.html +14 -11
  158. data/doc/cxxapi/classPassenger_1_1SpawnException.html +36 -37
  159. data/doc/cxxapi/classPassenger_1_1SpawnManager-members.html +18 -15
  160. data/doc/cxxapi/classPassenger_1_1SpawnManager.html +115 -110
  161. data/doc/cxxapi/classPassenger_1_1StandardSession-members.html +30 -27
  162. data/doc/cxxapi/classPassenger_1_1StandardSession.html +163 -184
  163. data/doc/cxxapi/classPassenger_1_1StaticString-members.html +12 -9
  164. data/doc/cxxapi/classPassenger_1_1StaticString.html +27 -25
  165. data/doc/cxxapi/classPassenger_1_1SystemException-members.html +16 -13
  166. data/doc/cxxapi/classPassenger_1_1SystemException.html +65 -67
  167. data/doc/cxxapi/classPassenger_1_1TimeRetrievalException-members.html +16 -13
  168. data/doc/cxxapi/classPassenger_1_1TimeRetrievalException.html +27 -23
  169. data/doc/cxxapi/classPassenger_1_1TimeoutException-members.html +12 -9
  170. data/doc/cxxapi/classPassenger_1_1TimeoutException.html +24 -20
  171. data/doc/cxxapi/classPassenger_1_1Uint16Message-members.html +36 -0
  172. data/doc/cxxapi/classPassenger_1_1Uint16Message.html +51 -0
  173. data/doc/cxxapi/classPassenger_1_1Uint32Message-members.html +36 -0
  174. data/doc/cxxapi/classPassenger_1_1Uint32Message.html +51 -0
  175. data/doc/cxxapi/classServer-members.html +12 -9
  176. data/doc/cxxapi/classServer.html +23 -20
  177. data/doc/cxxapi/classServerInstanceDirToucher-members.html +12 -9
  178. data/doc/cxxapi/classServerInstanceDirToucher.html +21 -17
  179. data/doc/cxxapi/classes.html +18 -4
  180. data/doc/cxxapi/definitions_8h_source.html +1 -0
  181. data/doc/cxxapi/files.html +36 -1
  182. data/doc/cxxapi/functions.html +53 -21
  183. data/doc/cxxapi/functions_0x62.html +82 -0
  184. data/doc/cxxapi/functions_0x63.html +99 -0
  185. data/doc/cxxapi/functions_0x64.html +95 -0
  186. data/doc/cxxapi/functions_0x65.html +88 -0
  187. data/doc/cxxapi/functions_0x66.html +100 -0
  188. data/doc/cxxapi/functions_0x67.html +170 -0
  189. data/doc/cxxapi/functions_0x68.html +88 -0
  190. data/doc/cxxapi/functions_0x69.html +93 -0
  191. data/doc/cxxapi/functions_0x6b.html +80 -0
  192. data/doc/cxxapi/functions_0x6c.html +88 -0
  193. data/doc/cxxapi/functions_0x6d.html +88 -0
  194. data/doc/cxxapi/functions_0x6e.html +86 -0
  195. data/doc/cxxapi/functions_0x6f.html +94 -0
  196. data/doc/cxxapi/functions_0x70.html +94 -0
  197. data/doc/cxxapi/functions_0x72.html +110 -0
  198. data/doc/cxxapi/functions_0x73.html +171 -0
  199. data/doc/cxxapi/functions_0x74.html +85 -0
  200. data/doc/cxxapi/functions_0x75.html +85 -0
  201. data/doc/cxxapi/functions_0x77.html +92 -0
  202. data/doc/cxxapi/functions_0x7e.html +79 -0
  203. data/doc/cxxapi/functions_enum.html +14 -12
  204. data/doc/cxxapi/functions_eval.html +22 -16
  205. data/doc/cxxapi/functions_func.html +460 -1
  206. data/doc/cxxapi/functions_vars.html +163 -63
  207. data/doc/cxxapi/graph_legend.html +1 -0
  208. data/doc/cxxapi/graph_legend.png +0 -0
  209. data/doc/cxxapi/group__Core.html +2 -2
  210. data/doc/cxxapi/group__Core.map +1 -2
  211. data/doc/cxxapi/group__Core.png +0 -0
  212. data/doc/cxxapi/group__Exceptions.html +32 -40
  213. data/doc/cxxapi/group__Hooks.html +2 -1
  214. data/doc/cxxapi/group__Hooks.map +1 -1
  215. data/doc/cxxapi/group__Hooks.png +0 -0
  216. data/doc/cxxapi/group__Support.html +509 -0
  217. data/doc/cxxapi/hierarchy.html +66 -62
  218. data/doc/cxxapi/inherit__graph__10.map +3 -1
  219. data/doc/cxxapi/inherit__graph__10.md5 +1 -1
  220. data/doc/cxxapi/inherit__graph__10.png +0 -0
  221. data/doc/cxxapi/inherit__graph__11.map +4 -1
  222. data/doc/cxxapi/inherit__graph__11.md5 +1 -1
  223. data/doc/cxxapi/inherit__graph__11.png +0 -0
  224. data/doc/cxxapi/inherit__graph__12.map +3 -1
  225. data/doc/cxxapi/inherit__graph__12.md5 +1 -1
  226. data/doc/cxxapi/inherit__graph__12.png +0 -0
  227. data/doc/cxxapi/inherit__graph__13.map +3 -1
  228. data/doc/cxxapi/inherit__graph__13.md5 +1 -1
  229. data/doc/cxxapi/inherit__graph__13.png +0 -0
  230. data/doc/cxxapi/inherit__graph__14.map +3 -1
  231. data/doc/cxxapi/inherit__graph__14.md5 +1 -1
  232. data/doc/cxxapi/inherit__graph__14.png +0 -0
  233. data/doc/cxxapi/inherit__graph__15.map +5 -1
  234. data/doc/cxxapi/inherit__graph__15.md5 +1 -1
  235. data/doc/cxxapi/inherit__graph__15.png +0 -0
  236. data/doc/cxxapi/inherit__graph__16.map +3 -3
  237. data/doc/cxxapi/inherit__graph__16.md5 +1 -1
  238. data/doc/cxxapi/inherit__graph__16.png +0 -0
  239. data/doc/cxxapi/inherit__graph__17.map +3 -1
  240. data/doc/cxxapi/inherit__graph__17.md5 +1 -1
  241. data/doc/cxxapi/inherit__graph__17.png +0 -0
  242. data/doc/cxxapi/inherit__graph__18.map +4 -1
  243. data/doc/cxxapi/inherit__graph__18.md5 +1 -1
  244. data/doc/cxxapi/inherit__graph__18.png +0 -0
  245. data/doc/cxxapi/inherit__graph__19.map +3 -1
  246. data/doc/cxxapi/inherit__graph__19.md5 +1 -1
  247. data/doc/cxxapi/inherit__graph__19.png +0 -0
  248. data/doc/cxxapi/inherit__graph__20.map +3 -2
  249. data/doc/cxxapi/inherit__graph__20.md5 +1 -1
  250. data/doc/cxxapi/inherit__graph__20.png +0 -0
  251. data/doc/cxxapi/inherit__graph__21.map +3 -1
  252. data/doc/cxxapi/inherit__graph__21.md5 +1 -1
  253. data/doc/cxxapi/inherit__graph__21.png +0 -0
  254. data/doc/cxxapi/inherit__graph__22.map +3 -1
  255. data/doc/cxxapi/inherit__graph__22.md5 +1 -1
  256. data/doc/cxxapi/inherit__graph__22.png +0 -0
  257. data/doc/cxxapi/inherit__graph__23.map +3 -1
  258. data/doc/cxxapi/inherit__graph__23.md5 +1 -1
  259. data/doc/cxxapi/inherit__graph__23.png +0 -0
  260. data/doc/cxxapi/inherit__graph__24.map +3 -1
  261. data/doc/cxxapi/inherit__graph__24.md5 +1 -1
  262. data/doc/cxxapi/inherit__graph__24.png +0 -0
  263. data/doc/cxxapi/inherit__graph__25.map +3 -1
  264. data/doc/cxxapi/inherit__graph__25.md5 +1 -1
  265. data/doc/cxxapi/inherit__graph__25.png +0 -0
  266. data/doc/cxxapi/inherit__graph__26.map +3 -1
  267. data/doc/cxxapi/inherit__graph__26.md5 +1 -1
  268. data/doc/cxxapi/inherit__graph__26.png +0 -0
  269. data/doc/cxxapi/inherit__graph__27.map +3 -1
  270. data/doc/cxxapi/inherit__graph__27.md5 +1 -1
  271. data/doc/cxxapi/inherit__graph__27.png +0 -0
  272. data/doc/cxxapi/inherit__graph__28.map +4 -1
  273. data/doc/cxxapi/inherit__graph__28.md5 +1 -1
  274. data/doc/cxxapi/inherit__graph__28.png +0 -0
  275. data/doc/cxxapi/inherit__graph__29.map +3 -1
  276. data/doc/cxxapi/inherit__graph__29.md5 +1 -1
  277. data/doc/cxxapi/inherit__graph__29.png +0 -0
  278. data/doc/cxxapi/inherit__graph__30.map +3 -2
  279. data/doc/cxxapi/inherit__graph__30.md5 +1 -1
  280. data/doc/cxxapi/inherit__graph__30.png +0 -0
  281. data/doc/cxxapi/inherit__graph__31.map +3 -1
  282. data/doc/cxxapi/inherit__graph__31.md5 +1 -1
  283. data/doc/cxxapi/inherit__graph__31.png +0 -0
  284. data/doc/cxxapi/inherit__graph__32.map +5 -1
  285. data/doc/cxxapi/inherit__graph__32.md5 +1 -1
  286. data/doc/cxxapi/inherit__graph__32.png +0 -0
  287. data/doc/cxxapi/inherit__graph__33.map +3 -1
  288. data/doc/cxxapi/inherit__graph__33.md5 +1 -1
  289. data/doc/cxxapi/inherit__graph__33.png +0 -0
  290. data/doc/cxxapi/inherit__graph__34.map +3 -3
  291. data/doc/cxxapi/inherit__graph__34.md5 +1 -1
  292. data/doc/cxxapi/inherit__graph__34.png +0 -0
  293. data/doc/cxxapi/inherit__graph__35.map +3 -1
  294. data/doc/cxxapi/inherit__graph__35.md5 +1 -1
  295. data/doc/cxxapi/inherit__graph__35.png +0 -0
  296. data/doc/cxxapi/inherit__graph__36.map +3 -1
  297. data/doc/cxxapi/inherit__graph__36.md5 +1 -1
  298. data/doc/cxxapi/inherit__graph__36.png +0 -0
  299. data/doc/cxxapi/inherit__graph__37.map +3 -1
  300. data/doc/cxxapi/inherit__graph__37.md5 +1 -1
  301. data/doc/cxxapi/inherit__graph__37.png +0 -0
  302. data/doc/cxxapi/inherit__graph__4.map +3 -1
  303. data/doc/cxxapi/inherit__graph__4.md5 +1 -1
  304. data/doc/cxxapi/inherit__graph__4.png +0 -0
  305. data/doc/cxxapi/inherit__graph__5.map +3 -1
  306. data/doc/cxxapi/inherit__graph__5.md5 +1 -1
  307. data/doc/cxxapi/inherit__graph__5.png +0 -0
  308. data/doc/cxxapi/inherit__graph__6.map +3 -1
  309. data/doc/cxxapi/inherit__graph__6.md5 +1 -1
  310. data/doc/cxxapi/inherit__graph__6.png +0 -0
  311. data/doc/cxxapi/inherit__graph__7.map +3 -1
  312. data/doc/cxxapi/inherit__graph__7.md5 +1 -1
  313. data/doc/cxxapi/inherit__graph__7.png +0 -0
  314. data/doc/cxxapi/inherit__graph__8.map +3 -1
  315. data/doc/cxxapi/inherit__graph__8.md5 +1 -1
  316. data/doc/cxxapi/inherit__graph__8.png +0 -0
  317. data/doc/cxxapi/inherit__graph__9.map +3 -1
  318. data/doc/cxxapi/inherit__graph__9.md5 +1 -1
  319. data/doc/cxxapi/inherit__graph__9.png +0 -0
  320. data/doc/cxxapi/inherits.html +123 -126
  321. data/doc/cxxapi/main.html +1 -0
  322. data/doc/cxxapi/modules.html +2 -1
  323. data/doc/cxxapi/namespacePassenger.html +263 -492
  324. data/doc/cxxapi/namespacemembers.html +68 -96
  325. data/doc/cxxapi/namespacemembers_enum.html +14 -12
  326. data/doc/cxxapi/namespacemembers_eval.html +20 -15
  327. data/doc/cxxapi/namespacemembers_func.html +52 -88
  328. data/doc/cxxapi/namespacemembers_type.html +18 -14
  329. data/doc/cxxapi/namespaces.html +12 -9
  330. data/doc/cxxapi/nginx_2Configuration_8h_source.html +125 -0
  331. data/doc/cxxapi/ngx__http__passenger__module_8h_source.html +94 -0
  332. data/doc/cxxapi/structPassenger_1_1MessageServer_1_1DisconnectEventBroadcastGuard-members.html +12 -9
  333. data/doc/cxxapi/structPassenger_1_1MessageServer_1_1DisconnectEventBroadcastGuard.html +24 -22
  334. data/doc/cxxapi/structPassenger_1_1PoolOptions-members.html +43 -38
  335. data/doc/cxxapi/structPassenger_1_1PoolOptions.html +275 -325
  336. data/doc/cxxapi/structPassenger_1_1StaticString_1_1Hash-members.html +12 -9
  337. data/doc/cxxapi/structPassenger_1_1StaticString_1_1Hash.html +24 -22
  338. data/doc/cxxapi/tree.html +152 -7
  339. data/doc/users_guide_snippets/{analysis_and_system_maintenance_tools.txt → analysis_and_system_maintenance.txt} +58 -1
  340. data/doc/users_guide_snippets/appendix_c_spawning_methods.txt +1 -2
  341. data/doc/users_guide_snippets/global_queueing_explained.txt +1 -5
  342. data/doc/users_guide_snippets/{rails_spawn_method.txt → passenger_spawn_method.txt} +9 -8
  343. data/doc/users_guide_snippets/tips.txt +12 -6
  344. data/doc/users_guide_snippets/under_the_hood/page_caching_support.txt +22 -0
  345. data/ext/apache2/Bucket.cpp +4 -4
  346. data/ext/apache2/Bucket.h +3 -3
  347. data/ext/apache2/Configuration.cpp +278 -381
  348. data/ext/apache2/Configuration.h +3 -357
  349. data/ext/apache2/Configuration.hpp +461 -0
  350. data/ext/apache2/DirectoryMapper.h +3 -3
  351. data/ext/apache2/HelperAgent.cpp +359 -0
  352. data/ext/apache2/Hooks.cpp +339 -226
  353. data/ext/apache2/Hooks.h +1 -1
  354. data/ext/apache2/mod_passenger.c +10 -4
  355. data/ext/boost/algorithm/string/case_conv.hpp +4 -4
  356. data/ext/boost/algorithm/string/concept.hpp +2 -2
  357. data/ext/boost/algorithm/string/detail/case_conv.hpp +18 -9
  358. data/ext/boost/algorithm/string/detail/find_format.hpp +44 -43
  359. data/ext/boost/algorithm/string/detail/find_format_all.hpp +56 -56
  360. data/ext/boost/algorithm/string/detail/find_format_store.hpp +7 -0
  361. data/ext/boost/algorithm/string/detail/finder.hpp +14 -14
  362. data/ext/boost/algorithm/string/detail/formatter.hpp +2 -2
  363. data/ext/boost/algorithm/string/detail/replace_storage.hpp +3 -3
  364. data/ext/boost/algorithm/string/detail/sequence.hpp +3 -3
  365. data/ext/boost/algorithm/string/erase.hpp +98 -98
  366. data/ext/boost/algorithm/string/find_format.hpp +56 -38
  367. data/ext/boost/algorithm/string/finder.hpp +6 -6
  368. data/ext/boost/algorithm/string/formatter.hpp +1 -1
  369. data/ext/boost/algorithm/string/replace.hpp +99 -99
  370. data/ext/boost/bind.hpp +5 -1670
  371. data/ext/boost/bind/bind.hpp +1751 -0
  372. data/ext/boost/bind/bind_mf2_cc.hpp +228 -0
  373. data/ext/boost/bind/mem_fn.hpp +389 -0
  374. data/ext/boost/bind/mem_fn_template.hpp +54 -27
  375. data/ext/boost/bind/placeholders.hpp +3 -2
  376. data/ext/boost/concept_check.hpp +10 -0
  377. data/ext/boost/config/abi/msvc_prefix.hpp +15 -1
  378. data/ext/boost/config/abi_prefix.hpp +1 -1
  379. data/ext/boost/config/abi_suffix.hpp +3 -2
  380. data/ext/boost/config/auto_link.hpp +6 -1
  381. data/ext/boost/config/compiler/borland.hpp +75 -17
  382. data/ext/boost/config/compiler/codegear.hpp +163 -0
  383. data/ext/boost/config/compiler/common_edg.hpp +35 -0
  384. data/ext/boost/config/compiler/digitalmars.hpp +26 -0
  385. data/ext/boost/config/compiler/gcc.hpp +69 -14
  386. data/ext/boost/config/compiler/hp_acc.hpp +32 -0
  387. data/ext/boost/config/compiler/intel.hpp +13 -2
  388. data/ext/boost/config/compiler/kai.hpp +0 -2
  389. data/ext/boost/config/compiler/metrowerks.hpp +29 -1
  390. data/ext/boost/config/compiler/mpw.hpp +30 -0
  391. data/ext/boost/config/compiler/pgi.hpp +37 -0
  392. data/ext/boost/config/compiler/sgi_mipspro.hpp +1 -0
  393. data/ext/boost/config/compiler/sunpro_cc.hpp +39 -7
  394. data/ext/boost/config/compiler/vacpp.hpp +31 -3
  395. data/ext/boost/config/compiler/visualc.hpp +72 -5
  396. data/ext/boost/config/no_tr1/cmath.hpp +28 -0
  397. data/ext/boost/config/platform/bsd.hpp +16 -3
  398. data/ext/boost/config/platform/hpux.hpp +3 -0
  399. data/ext/boost/config/platform/macos.hpp +8 -0
  400. data/ext/boost/config/platform/solaris.hpp +7 -0
  401. data/ext/boost/config/platform/vxworks.hpp +31 -0
  402. data/ext/boost/config/select_compiler_config.hpp +4 -0
  403. data/ext/boost/config/select_platform_config.hpp +6 -2
  404. data/ext/boost/config/select_stdlib_config.hpp +17 -8
  405. data/ext/boost/config/stdlib/dinkumware.hpp +34 -2
  406. data/ext/boost/config/stdlib/libcomo.hpp +25 -0
  407. data/ext/boost/config/stdlib/libstdcpp3.hpp +56 -2
  408. data/ext/boost/config/stdlib/modena.hpp +25 -0
  409. data/ext/boost/config/stdlib/msl.hpp +24 -0
  410. data/ext/boost/config/stdlib/roguewave.hpp +26 -0
  411. data/ext/boost/config/stdlib/sgi.hpp +25 -0
  412. data/ext/boost/config/stdlib/stlport.hpp +36 -1
  413. data/ext/boost/config/stdlib/vacpp.hpp +25 -0
  414. data/ext/boost/config/suffix.hpp +67 -32
  415. data/ext/boost/config/warning_disable.hpp +47 -0
  416. data/ext/boost/cstdint.hpp +62 -36
  417. data/ext/boost/date_time/c_time.hpp +28 -12
  418. data/ext/boost/date_time/compiler_config.hpp +27 -5
  419. data/ext/boost/date_time/constrained_value.hpp +36 -13
  420. data/ext/boost/date_time/date.hpp +44 -33
  421. data/ext/boost/date_time/date_duration.hpp +13 -14
  422. data/ext/boost/date_time/date_facet.hpp +215 -226
  423. data/ext/boost/date_time/date_generator_formatter.hpp +22 -20
  424. data/ext/boost/date_time/date_generator_parser.hpp +52 -51
  425. data/ext/boost/date_time/date_generators.hpp +16 -16
  426. data/ext/boost/date_time/date_parsing.hpp +115 -98
  427. data/ext/boost/date_time/filetime_functions.hpp +133 -41
  428. data/ext/boost/date_time/format_date_parser.hpp +22 -10
  429. data/ext/boost/date_time/gregorian/conversion.hpp +32 -39
  430. data/ext/boost/date_time/gregorian/greg_calendar.hpp +15 -14
  431. data/ext/boost/date_time/gregorian/greg_date.hpp +19 -18
  432. data/ext/boost/date_time/gregorian/greg_duration.hpp +106 -10
  433. data/ext/boost/date_time/gregorian/greg_duration_types.hpp +16 -7
  434. data/ext/boost/date_time/gregorian/greg_weekday.hpp +2 -2
  435. data/ext/boost/date_time/gregorian/gregorian_io.hpp +11 -4
  436. data/ext/boost/date_time/gregorian_calendar.hpp +8 -8
  437. data/ext/boost/date_time/gregorian_calendar.ipp +30 -30
  438. data/ext/boost/date_time/int_adapter.hpp +4 -2
  439. data/ext/boost/date_time/microsec_time_clock.hpp +39 -117
  440. data/ext/boost/date_time/period_parser.hpp +17 -15
  441. data/ext/boost/date_time/posix_time/conversion.hpp +28 -29
  442. data/ext/boost/date_time/posix_time/posix_time_config.hpp +19 -19
  443. data/ext/boost/date_time/posix_time/posix_time_io.hpp +31 -38
  444. data/ext/boost/date_time/posix_time/time_formatters.hpp +32 -32
  445. data/ext/boost/date_time/string_parse_tree.hpp +46 -46
  446. data/ext/boost/date_time/strings_from_facet.hpp +7 -5
  447. data/ext/boost/date_time/time.hpp +7 -6
  448. data/ext/boost/date_time/time_defs.hpp +12 -2
  449. data/ext/boost/date_time/time_duration.hpp +27 -26
  450. data/ext/boost/date_time/time_facet.hpp +386 -321
  451. data/ext/boost/date_time/time_formatting_streams.hpp +8 -5
  452. data/ext/boost/date_time/time_resolution_traits.hpp +29 -25
  453. data/ext/boost/date_time/time_system_split.hpp +7 -13
  454. data/ext/boost/date_time/wrapping_int.hpp +21 -15
  455. data/ext/boost/detail/call_traits.hpp +1 -1
  456. data/ext/boost/detail/endian.hpp +4 -4
  457. data/ext/boost/detail/no_exceptions_support.hpp +87 -0
  458. data/ext/boost/detail/sp_typeinfo.hpp +50 -4
  459. data/ext/boost/detail/workaround.hpp +63 -3
  460. data/ext/boost/enable_shared_from_this.hpp +4 -59
  461. data/ext/boost/exception/current_exception_cast.hpp +43 -0
  462. data/ext/boost/exception/detail/attribute_noreturn.hpp +17 -0
  463. data/ext/boost/exception/detail/error_info_impl.hpp +75 -0
  464. data/ext/boost/exception/detail/exception_ptr.hpp +490 -0
  465. data/ext/boost/exception/detail/is_output_streamable.hpp +47 -0
  466. data/ext/boost/exception/detail/object_hex_dump.hpp +50 -0
  467. data/ext/boost/exception/detail/type_info.hpp +79 -0
  468. data/ext/boost/exception/diagnostic_information.hpp +182 -0
  469. data/ext/boost/exception/exception.hpp +422 -0
  470. data/ext/boost/exception/get_error_info.hpp +130 -0
  471. data/ext/boost/exception/info.hpp +167 -0
  472. data/ext/boost/exception/to_string.hpp +83 -0
  473. data/ext/boost/exception/to_string_stub.hpp +109 -0
  474. data/ext/boost/exception_ptr.hpp +11 -0
  475. data/ext/boost/function/detail/prologue.hpp +2 -1
  476. data/ext/boost/function/function_base.hpp +270 -128
  477. data/ext/boost/function/function_fwd.hpp +70 -0
  478. data/ext/boost/function/function_template.hpp +319 -130
  479. data/ext/boost/get_pointer.hpp +5 -1
  480. data/ext/boost/integer.hpp +253 -0
  481. data/ext/boost/integer_fwd.hpp +174 -0
  482. data/ext/boost/integer_traits.hpp +26 -1
  483. data/ext/boost/io/ios_state.hpp +8 -0
  484. data/ext/boost/iterator/detail/config_def.hpp +4 -2
  485. data/ext/boost/iterator/iterator_adaptor.hpp +7 -2
  486. data/ext/boost/iterator/iterator_facade.hpp +1 -2
  487. data/ext/boost/lexical_cast.hpp +113 -105
  488. data/ext/boost/limits.hpp +1 -1
  489. data/ext/boost/mem_fn.hpp +5 -370
  490. data/ext/boost/memory_order.hpp +53 -0
  491. data/ext/boost/mpl/always.hpp +3 -3
  492. data/ext/boost/mpl/and.hpp +3 -3
  493. data/ext/boost/mpl/apply.hpp +3 -3
  494. data/ext/boost/mpl/apply_fwd.hpp +3 -3
  495. data/ext/boost/mpl/apply_wrap.hpp +37 -6
  496. data/ext/boost/mpl/arg.hpp +3 -3
  497. data/ext/boost/mpl/arg_fwd.hpp +3 -3
  498. data/ext/boost/mpl/assert.hpp +6 -6
  499. data/ext/boost/mpl/aux_/adl_barrier.hpp +3 -3
  500. data/ext/boost/mpl/aux_/arg_typedef.hpp +3 -3
  501. data/ext/boost/mpl/aux_/arity.hpp +3 -3
  502. data/ext/boost/mpl/aux_/arity_spec.hpp +3 -3
  503. data/ext/boost/mpl/aux_/common_name_wknd.hpp +3 -3
  504. data/ext/boost/mpl/aux_/config/adl.hpp +4 -4
  505. data/ext/boost/mpl/aux_/config/arrays.hpp +4 -4
  506. data/ext/boost/mpl/aux_/config/bcc.hpp +28 -0
  507. data/ext/boost/mpl/aux_/config/bind.hpp +4 -4
  508. data/ext/boost/mpl/aux_/config/compiler.hpp +8 -6
  509. data/ext/boost/mpl/aux_/config/ctps.hpp +3 -3
  510. data/ext/boost/mpl/aux_/config/dtp.hpp +5 -5
  511. data/ext/boost/mpl/aux_/config/eti.hpp +3 -3
  512. data/ext/boost/mpl/aux_/config/gcc.hpp +3 -3
  513. data/ext/boost/mpl/aux_/config/has_apply.hpp +3 -3
  514. data/ext/boost/mpl/aux_/config/has_xxx.hpp +3 -3
  515. data/ext/boost/mpl/aux_/config/integral.hpp +4 -4
  516. data/ext/boost/mpl/aux_/config/intel.hpp +3 -3
  517. data/ext/boost/mpl/aux_/config/lambda.hpp +3 -3
  518. data/ext/boost/mpl/aux_/config/msvc.hpp +3 -3
  519. data/ext/boost/mpl/aux_/config/msvc_typename.hpp +3 -3
  520. data/ext/boost/mpl/aux_/config/nttp.hpp +3 -3
  521. data/ext/boost/mpl/aux_/config/overload_resolution.hpp +3 -3
  522. data/ext/boost/mpl/aux_/config/pp_counter.hpp +3 -3
  523. data/ext/boost/mpl/aux_/config/preprocessor.hpp +4 -4
  524. data/ext/boost/mpl/aux_/config/static_constant.hpp +3 -3
  525. data/ext/boost/mpl/aux_/config/ttp.hpp +4 -4
  526. data/ext/boost/mpl/aux_/config/use_preprocessed.hpp +3 -3
  527. data/ext/boost/mpl/aux_/config/workaround.hpp +3 -3
  528. data/ext/boost/mpl/aux_/full_lambda.hpp +3 -3
  529. data/ext/boost/mpl/aux_/has_apply.hpp +3 -3
  530. data/ext/boost/mpl/aux_/has_type.hpp +3 -3
  531. data/ext/boost/mpl/aux_/include_preprocessed.hpp +3 -3
  532. data/ext/boost/mpl/aux_/integral_wrapper.hpp +3 -3
  533. data/ext/boost/mpl/aux_/lambda_arity_param.hpp +3 -3
  534. data/ext/boost/mpl/aux_/lambda_support.hpp +4 -4
  535. data/ext/boost/mpl/aux_/msvc_never_true.hpp +3 -3
  536. data/ext/boost/mpl/aux_/na.hpp +3 -3
  537. data/ext/boost/mpl/aux_/na_assert.hpp +3 -3
  538. data/ext/boost/mpl/aux_/na_fwd.hpp +3 -3
  539. data/ext/boost/mpl/aux_/na_spec.hpp +3 -3
  540. data/ext/boost/mpl/aux_/nested_type_wknd.hpp +3 -3
  541. data/ext/boost/mpl/aux_/nttp_decl.hpp +3 -3
  542. data/ext/boost/mpl/aux_/preprocessor/def_params_tail.hpp +3 -3
  543. data/ext/boost/mpl/aux_/preprocessor/enum.hpp +3 -3
  544. data/ext/boost/mpl/aux_/preprocessor/filter_params.hpp +3 -3
  545. data/ext/boost/mpl/aux_/preprocessor/params.hpp +3 -3
  546. data/ext/boost/mpl/aux_/preprocessor/sub.hpp +3 -3
  547. data/ext/boost/mpl/aux_/static_cast.hpp +3 -3
  548. data/ext/boost/mpl/aux_/template_arity.hpp +3 -3
  549. data/ext/boost/mpl/aux_/template_arity_fwd.hpp +3 -3
  550. data/ext/boost/mpl/aux_/type_wrapper.hpp +3 -3
  551. data/ext/boost/mpl/aux_/value_wknd.hpp +3 -3
  552. data/ext/boost/mpl/aux_/yes_no.hpp +3 -3
  553. data/ext/boost/mpl/bind.hpp +3 -3
  554. data/ext/boost/mpl/bind_fwd.hpp +3 -3
  555. data/ext/boost/mpl/bool.hpp +3 -3
  556. data/ext/boost/mpl/bool_fwd.hpp +3 -3
  557. data/ext/boost/mpl/eval_if.hpp +3 -3
  558. data/ext/boost/mpl/has_xxx.hpp +10 -8
  559. data/ext/boost/mpl/identity.hpp +3 -3
  560. data/ext/boost/mpl/if.hpp +3 -3
  561. data/ext/boost/mpl/int.hpp +3 -3
  562. data/ext/boost/mpl/int_fwd.hpp +3 -3
  563. data/ext/boost/mpl/integral_c.hpp +3 -3
  564. data/ext/boost/mpl/integral_c_fwd.hpp +3 -3
  565. data/ext/boost/mpl/integral_c_tag.hpp +3 -3
  566. data/ext/boost/mpl/lambda.hpp +3 -3
  567. data/ext/boost/mpl/lambda_fwd.hpp +3 -3
  568. data/ext/boost/mpl/limits/arity.hpp +3 -3
  569. data/ext/boost/mpl/logical.hpp +3 -3
  570. data/ext/boost/mpl/next.hpp +3 -3
  571. data/ext/boost/mpl/next_prior.hpp +3 -3
  572. data/ext/boost/mpl/not.hpp +3 -3
  573. data/ext/boost/mpl/or.hpp +3 -3
  574. data/ext/boost/mpl/placeholders.hpp +3 -3
  575. data/ext/boost/mpl/protect.hpp +3 -3
  576. data/ext/boost/mpl/quote.hpp +18 -7
  577. data/ext/boost/mpl/size_t.hpp +3 -3
  578. data/ext/boost/mpl/size_t_fwd.hpp +3 -3
  579. data/ext/boost/mpl/void.hpp +3 -3
  580. data/ext/boost/mpl/void_fwd.hpp +3 -3
  581. data/ext/boost/non_type.hpp +27 -27
  582. data/ext/boost/operators.hpp +51 -18
  583. data/ext/boost/preprocessor/arithmetic/detail/div_base.hpp +61 -0
  584. data/ext/boost/preprocessor/arithmetic/mod.hpp +39 -0
  585. data/ext/boost/preprocessor/comparison/less_equal.hpp +39 -0
  586. data/ext/boost/preprocessor/control/deduce_d.hpp +22 -0
  587. data/ext/boost/preprocessor/logical/not.hpp +30 -0
  588. data/ext/boost/preprocessor/seq/cat.hpp +48 -0
  589. data/ext/boost/preprocessor/seq/fold_left.hpp +1070 -0
  590. data/ext/boost/preprocessor/seq/transform.hpp +48 -0
  591. data/ext/boost/range/as_literal.hpp +10 -14
  592. data/ext/boost/range/begin.hpp +4 -4
  593. data/ext/boost/range/detail/implementation_help.hpp +4 -0
  594. data/ext/boost/range/end.hpp +4 -4
  595. data/ext/boost/range/iterator_range.hpp +31 -15
  596. data/ext/boost/ref.hpp +12 -1
  597. data/ext/boost/scoped_array.hpp +16 -0
  598. data/ext/boost/scoped_ptr.hpp +16 -0
  599. data/ext/boost/shared_ptr.hpp +2 -602
  600. data/ext/boost/{detail → smart_ptr}/bad_weak_ptr.hpp +4 -4
  601. data/ext/boost/{detail → smart_ptr/detail}/atomic_count.hpp +14 -19
  602. data/ext/boost/{detail → smart_ptr/detail}/atomic_count_gcc.hpp +13 -9
  603. data/ext/boost/{detail → smart_ptr/detail}/atomic_count_gcc_x86.hpp +5 -12
  604. data/ext/boost/{detail → smart_ptr/detail}/atomic_count_pthreads.hpp +5 -5
  605. data/ext/boost/{detail → smart_ptr/detail}/atomic_count_solaris.hpp +3 -3
  606. data/ext/boost/{detail → smart_ptr/detail}/atomic_count_sync.hpp +9 -5
  607. data/ext/boost/{detail → smart_ptr/detail}/atomic_count_win32.hpp +3 -3
  608. data/ext/boost/smart_ptr/detail/operator_bool.hpp +56 -0
  609. data/ext/boost/{detail → smart_ptr/detail}/shared_count.hpp +86 -17
  610. data/ext/boost/smart_ptr/detail/sp_convertible.hpp +76 -0
  611. data/ext/boost/smart_ptr/detail/sp_counted_base.hpp +70 -0
  612. data/ext/boost/{detail → smart_ptr/detail}/sp_counted_base_acc_ia64.hpp +4 -4
  613. data/ext/boost/{detail → smart_ptr/detail}/sp_counted_base_cw_ppc.hpp +4 -4
  614. data/ext/boost/{detail → smart_ptr/detail}/sp_counted_base_cw_x86.hpp +4 -4
  615. data/ext/boost/{detail → smart_ptr/detail}/sp_counted_base_gcc_ia64.hpp +4 -4
  616. data/ext/boost/smart_ptr/detail/sp_counted_base_gcc_mips.hpp +172 -0
  617. data/ext/boost/{detail → smart_ptr/detail}/sp_counted_base_gcc_ppc.hpp +4 -4
  618. data/ext/boost/{detail → smart_ptr/detail}/sp_counted_base_gcc_sparc.hpp +7 -7
  619. data/ext/boost/{detail → smart_ptr/detail}/sp_counted_base_gcc_x86.hpp +4 -4
  620. data/ext/boost/{detail → smart_ptr/detail}/sp_counted_base_nt.hpp +4 -4
  621. data/ext/boost/{detail → smart_ptr/detail}/sp_counted_base_pt.hpp +4 -4
  622. data/ext/boost/{detail → smart_ptr/detail}/sp_counted_base_solaris.hpp +4 -4
  623. data/ext/boost/smart_ptr/detail/sp_counted_base_spin.hpp +131 -0
  624. data/ext/boost/{detail → smart_ptr/detail}/sp_counted_base_sync.hpp +8 -4
  625. data/ext/boost/{detail → smart_ptr/detail}/sp_counted_base_w32.hpp +4 -4
  626. data/ext/boost/{detail → smart_ptr/detail}/sp_counted_impl.hpp +5 -5
  627. data/ext/boost/smart_ptr/detail/sp_has_sync.hpp +49 -0
  628. data/ext/boost/smart_ptr/detail/spinlock.hpp +53 -0
  629. data/ext/boost/smart_ptr/detail/spinlock_gcc_arm.hpp +85 -0
  630. data/ext/boost/smart_ptr/detail/spinlock_nt.hpp +89 -0
  631. data/ext/boost/smart_ptr/detail/spinlock_pool.hpp +87 -0
  632. data/ext/boost/smart_ptr/detail/spinlock_pt.hpp +79 -0
  633. data/ext/boost/smart_ptr/detail/spinlock_sync.hpp +87 -0
  634. data/ext/boost/smart_ptr/detail/yield_k.hpp +149 -0
  635. data/ext/boost/smart_ptr/enable_shared_from_this.hpp +79 -0
  636. data/ext/boost/smart_ptr/scoped_array.hpp +107 -0
  637. data/ext/boost/smart_ptr/scoped_ptr.hpp +131 -0
  638. data/ext/boost/smart_ptr/shared_ptr.hpp +701 -0
  639. data/ext/boost/smart_ptr/weak_ptr.hpp +230 -0
  640. data/ext/boost/src/pthread/thread.cpp +115 -203
  641. data/ext/boost/src/tss_null.cpp +1 -1
  642. data/ext/boost/static_assert.hpp +14 -4
  643. data/ext/boost/thread.hpp +7 -2
  644. data/ext/boost/thread/barrier.hpp +63 -0
  645. data/ext/boost/thread/detail/force_cast.hpp +39 -0
  646. data/ext/boost/thread/detail/move.hpp +29 -2
  647. data/ext/boost/thread/detail/platform.hpp +3 -3
  648. data/ext/boost/thread/detail/singleton.hpp +59 -0
  649. data/ext/boost/thread/detail/thread.hpp +496 -0
  650. data/ext/boost/thread/detail/thread_group.hpp +105 -0
  651. data/ext/boost/thread/detail/thread_heap_alloc.hpp +23 -0
  652. data/ext/boost/thread/detail/thread_interruption.hpp +35 -0
  653. data/ext/boost/thread/detail/tss_hooks.hpp +82 -0
  654. data/ext/boost/thread/exceptions.hpp +174 -60
  655. data/ext/boost/thread/future.hpp +1364 -0
  656. data/ext/boost/thread/locks.hpp +899 -32
  657. data/ext/boost/thread/once.hpp +4 -0
  658. data/ext/boost/thread/pthread/condition_variable.hpp +16 -21
  659. data/ext/boost/thread/pthread/condition_variable_fwd.hpp +37 -3
  660. data/ext/boost/thread/pthread/mutex.hpp +20 -7
  661. data/ext/boost/thread/pthread/once.hpp +7 -2
  662. data/ext/boost/thread/pthread/pthread_mutex_scoped_lock.hpp +5 -1
  663. data/ext/boost/thread/pthread/recursive_mutex.hpp +22 -5
  664. data/ext/boost/thread/pthread/shared_mutex.hpp +303 -0
  665. data/ext/boost/thread/pthread/thread_data.hpp +37 -10
  666. data/ext/boost/thread/pthread/thread_heap_alloc.hpp +242 -0
  667. data/ext/boost/thread/pthread/timespec.hpp +11 -3
  668. data/ext/boost/thread/shared_mutex.hpp +21 -0
  669. data/ext/boost/thread/thread.hpp +8 -3
  670. data/ext/boost/thread/thread_time.hpp +4 -0
  671. data/ext/boost/thread/tss.hpp +106 -13
  672. data/ext/boost/thread/xtime.hpp +6 -2
  673. data/ext/boost/throw_exception.hpp +36 -7
  674. data/ext/boost/token_functions.hpp +1 -1
  675. data/ext/boost/tokenizer.hpp +1 -1
  676. data/ext/boost/type_traits/add_pointer.hpp +1 -1
  677. data/ext/boost/type_traits/add_volatile.hpp +47 -0
  678. data/ext/boost/type_traits/alignment_of.hpp +29 -1
  679. data/ext/boost/type_traits/config.hpp +1 -1
  680. data/ext/boost/type_traits/conversion_traits.hpp +1 -1
  681. data/ext/boost/type_traits/has_trivial_destructor.hpp +42 -0
  682. data/ext/boost/type_traits/intrinsics.hpp +88 -1
  683. data/ext/boost/type_traits/is_abstract.hpp +14 -5
  684. data/ext/boost/type_traits/is_arithmetic.hpp +8 -0
  685. data/ext/boost/type_traits/is_array.hpp +3 -2
  686. data/ext/boost/type_traits/is_base_and_derived.hpp +254 -0
  687. data/ext/boost/type_traits/is_base_of.hpp +51 -0
  688. data/ext/boost/type_traits/is_class.hpp +12 -0
  689. data/ext/boost/type_traits/is_const.hpp +6 -2
  690. data/ext/boost/type_traits/is_convertible.hpp +14 -2
  691. data/ext/boost/type_traits/is_enum.hpp +10 -1
  692. data/ext/boost/type_traits/is_function.hpp +11 -3
  693. data/ext/boost/type_traits/is_fundamental.hpp +45 -0
  694. data/ext/boost/type_traits/is_integral.hpp +5 -0
  695. data/ext/boost/type_traits/is_member_function_pointer.hpp +5 -3
  696. data/ext/boost/type_traits/is_member_pointer.hpp +4 -2
  697. data/ext/boost/type_traits/is_pointer.hpp +3 -1
  698. data/ext/boost/type_traits/is_reference.hpp +4 -2
  699. data/ext/boost/type_traits/is_signed.hpp +135 -0
  700. data/ext/boost/type_traits/is_unsigned.hpp +130 -0
  701. data/ext/boost/type_traits/is_void.hpp +5 -0
  702. data/ext/boost/type_traits/is_volatile.hpp +4 -2
  703. data/ext/boost/type_traits/make_unsigned.hpp +137 -0
  704. data/ext/boost/type_traits/remove_reference.hpp +1 -1
  705. data/ext/boost/type_traits/type_with_alignment.hpp +106 -1
  706. data/ext/boost/utility.hpp +2 -1
  707. data/ext/boost/utility/addressof.hpp +61 -17
  708. data/ext/boost/utility/binary.hpp +708 -0
  709. data/ext/boost/utility/enable_if.hpp +2 -2
  710. data/ext/boost/weak_ptr.hpp +4 -174
  711. data/ext/common/AbstractSpawnManager.h +110 -0
  712. data/ext/common/Account.h +175 -0
  713. data/ext/common/AccountsDatabase.cpp +81 -0
  714. data/ext/common/AccountsDatabase.h +130 -0
  715. data/ext/common/AgentBase.cpp +323 -0
  716. data/ext/common/{Version.h → AgentBase.h} +14 -6
  717. data/ext/common/AgentsStarter.cpp +154 -0
  718. data/ext/common/AgentsStarter.h +81 -0
  719. data/ext/common/AgentsStarter.hpp +619 -0
  720. data/ext/common/ApplicationPool/Client.h +796 -0
  721. data/ext/common/{ApplicationPool.h → ApplicationPool/Interface.h} +108 -18
  722. data/ext/common/ApplicationPool/Pool.h +1315 -0
  723. data/ext/common/ApplicationPool/Server.h +475 -0
  724. data/ext/common/BCrypt.cpp +343 -0
  725. data/ext/common/BCrypt.h +73 -0
  726. data/ext/common/Blowfish.c +685 -0
  727. data/ext/common/Blowfish.h +103 -0
  728. data/ext/common/Constants.h +48 -0
  729. data/ext/common/EventedClient.h +598 -0
  730. data/ext/common/EventedMessageServer.h +327 -0
  731. data/ext/common/EventedServer.h +295 -0
  732. data/ext/common/Exceptions.h +78 -1
  733. data/ext/common/FileDescriptor.h +229 -0
  734. data/ext/common/HelperAgent/BacktracesServer.h +59 -0
  735. data/ext/common/Logging.cpp +8 -9
  736. data/ext/common/Logging.h +593 -21
  737. data/ext/common/LoggingAgent/ChangeNotifier.h +63 -0
  738. data/ext/common/LoggingAgent/DataStoreId.h +177 -0
  739. data/ext/common/LoggingAgent/LoggingServer.h +1343 -0
  740. data/ext/common/LoggingAgent/Main.cpp +278 -0
  741. data/ext/common/LoggingAgent/RemoteSender.h +457 -0
  742. data/ext/common/MessageChannel.h +196 -34
  743. data/ext/common/MessageClient.h +297 -0
  744. data/ext/common/MessageReadersWriters.h +508 -0
  745. data/ext/common/MessageServer.h +575 -0
  746. data/ext/common/PoolOptions.h +279 -117
  747. data/ext/common/Process.h +255 -0
  748. data/ext/common/RandomGenerator.h +160 -0
  749. data/ext/common/ResourceLocator.h +84 -0
  750. data/ext/common/ServerInstanceDir.h +343 -0
  751. data/ext/common/Session.h +470 -0
  752. data/ext/common/SpawnManager.h +256 -201
  753. data/ext/common/StaticString.h +79 -4
  754. data/ext/common/StringListCreator.h +2 -2
  755. data/ext/common/Utils.cpp +385 -397
  756. data/ext/common/Utils.h +79 -165
  757. data/ext/common/{Base64.cpp → Utils/Base64.cpp} +0 -0
  758. data/ext/common/{Base64.h → Utils/Base64.h} +27 -1
  759. data/ext/common/Utils/BlockingQueue.h +136 -0
  760. data/ext/common/Utils/BlockingScalar.h +50 -0
  761. data/ext/common/{CachedFileStat.cpp → Utils/CachedFileStat.cpp} +1 -1
  762. data/ext/common/{CachedFileStat.h → Utils/CachedFileStat.h} +1 -1
  763. data/ext/common/{CachedFileStat.hpp → Utils/CachedFileStat.hpp} +1 -1
  764. data/ext/common/{FileChangeChecker.h → Utils/FileChangeChecker.h} +1 -1
  765. data/ext/common/Utils/FileHandleGuard.h +81 -0
  766. data/ext/common/Utils/IOUtils.cpp +754 -0
  767. data/ext/common/Utils/IOUtils.h +253 -0
  768. data/ext/common/Utils/MD5.cpp +406 -0
  769. data/ext/common/Utils/MD5.h +98 -0
  770. data/ext/common/Utils/MemZeroGuard.h +103 -0
  771. data/ext/common/Utils/ProcessMetricsCollector.h +462 -0
  772. data/ext/common/Utils/ScopeGuard.h +72 -0
  773. data/ext/common/Utils/StrIntUtils.cpp +329 -0
  774. data/ext/common/Utils/StrIntUtils.h +228 -0
  775. data/ext/common/{SystemTime.cpp → Utils/SystemTime.cpp} +5 -1
  776. data/ext/common/Utils/SystemTime.h +201 -0
  777. data/ext/common/{Timer.h → Utils/Timer.h} +58 -18
  778. data/ext/common/Utils/VariantMap.h +363 -0
  779. data/ext/common/Utils/foo.cpp +10 -0
  780. data/ext/common/Watchdog.cpp +1034 -0
  781. data/ext/google/COPYING +28 -0
  782. data/ext/google/ChangeLog +167 -0
  783. data/ext/google/dense_hash_map +310 -0
  784. data/ext/google/dense_hash_set +287 -0
  785. data/ext/google/sparse_hash_map +294 -0
  786. data/ext/google/sparse_hash_set +275 -0
  787. data/ext/google/sparsehash/densehashtable.h +1062 -0
  788. data/ext/google/sparsehash/sparseconfig.h +55 -0
  789. data/ext/google/sparsehash/sparsehashtable.h +1015 -0
  790. data/ext/google/sparsetable +1468 -0
  791. data/ext/google/type_traits.h +250 -0
  792. data/ext/libev/Changes +302 -0
  793. data/ext/libev/LICENSE +36 -0
  794. data/ext/libev/Makefile.am +18 -0
  795. data/ext/libev/Makefile.in +685 -0
  796. data/ext/libev/README +58 -0
  797. data/ext/libev/aclocal.m4 +7549 -0
  798. data/ext/libev/autogen.sh +6 -0
  799. data/ext/libev/config.guess +1526 -0
  800. data/ext/libev/config.h +122 -0
  801. data/ext/libev/config.h.in +121 -0
  802. data/ext/libev/config.sub +1658 -0
  803. data/ext/libev/configure +22156 -0
  804. data/ext/libev/configure.ac +18 -0
  805. data/ext/libev/ev++.h +800 -0
  806. data/ext/libev/ev.c +3694 -0
  807. data/ext/libev/ev.h +705 -0
  808. data/ext/libev/ev_epoll.c +228 -0
  809. data/ext/libev/ev_kqueue.c +196 -0
  810. data/ext/libev/ev_poll.c +144 -0
  811. data/ext/libev/ev_port.c +165 -0
  812. data/ext/libev/ev_select.c +308 -0
  813. data/ext/libev/ev_vars.h +187 -0
  814. data/ext/libev/ev_win32.c +153 -0
  815. data/ext/libev/ev_wrap.h +178 -0
  816. data/ext/libev/event.c +401 -0
  817. data/ext/libev/event.h +158 -0
  818. data/ext/libev/install-sh +294 -0
  819. data/ext/libev/libev.m4 +38 -0
  820. data/ext/libev/ltmain.sh +6871 -0
  821. data/ext/libev/missing +336 -0
  822. data/ext/libev/mkinstalldirs +111 -0
  823. data/ext/nginx/Configuration.c +532 -182
  824. data/ext/nginx/Configuration.h +33 -10
  825. data/ext/nginx/ContentHandler.c +188 -53
  826. data/ext/nginx/ContentHandler.h +1 -1
  827. data/ext/nginx/{HelperServer.cpp → HelperAgent.cpp} +433 -299
  828. data/ext/nginx/HttpStatusExtractor.h +1 -1
  829. data/ext/nginx/ScgiRequestParser.h +68 -11
  830. data/ext/nginx/StaticContentHandler.c +4 -1
  831. data/ext/nginx/StaticContentHandler.h +1 -1
  832. data/ext/nginx/config +5 -5
  833. data/ext/nginx/ngx_http_passenger_module.c +315 -469
  834. data/ext/nginx/ngx_http_passenger_module.h +8 -17
  835. data/ext/oxt/backtrace.cpp +49 -41
  836. data/ext/oxt/backtrace.hpp +1 -1
  837. data/ext/oxt/detail/backtrace_disabled.hpp +1 -1
  838. data/ext/oxt/detail/backtrace_enabled.hpp +16 -15
  839. data/ext/oxt/detail/spin_lock_darwin.hpp +69 -0
  840. data/ext/oxt/detail/spin_lock_gcc_x86.hpp +3 -4
  841. data/ext/oxt/detail/spin_lock_portable.hpp +1 -1
  842. data/ext/oxt/detail/spin_lock_pthreads.hpp +1 -1
  843. data/ext/oxt/detail/tracable_exception_disabled.hpp +1 -1
  844. data/ext/oxt/detail/tracable_exception_enabled.hpp +1 -1
  845. data/ext/oxt/dynamic_thread_group.hpp +195 -0
  846. data/ext/oxt/macros.hpp +1 -1
  847. data/ext/oxt/spin_lock.hpp +4 -2
  848. data/ext/oxt/system_calls.cpp +129 -13
  849. data/ext/oxt/system_calls.hpp +16 -2
  850. data/ext/oxt/thread.cpp +1 -1
  851. data/ext/oxt/thread.hpp +49 -14
  852. data/ext/oxt/tracable_exception.cpp +5 -5
  853. data/ext/oxt/tracable_exception.hpp +1 -1
  854. data/ext/phusion_passenger/extconf.rb +7 -2
  855. data/ext/phusion_passenger/native_support.c +733 -33
  856. data/{bin → helper-scripts}/passenger-spawn-server +50 -12
  857. data/helper-scripts/prespawn +63 -0
  858. data/lib/phusion_passenger.rb +113 -0
  859. data/lib/phusion_passenger/abstract_installer.rb +50 -12
  860. data/lib/phusion_passenger/abstract_request_handler.rb +432 -171
  861. data/lib/phusion_passenger/abstract_server.rb +125 -122
  862. data/lib/phusion_passenger/abstract_server_collection.rb +51 -22
  863. data/lib/phusion_passenger/admin_tools.rb +1 -1
  864. data/lib/phusion_passenger/admin_tools/memory_stats.rb +299 -0
  865. data/lib/phusion_passenger/admin_tools/server_instance.rb +334 -0
  866. data/lib/phusion_passenger/analytics_logger.rb +342 -0
  867. data/lib/phusion_passenger/{application.rb → app_process.rb} +73 -24
  868. data/lib/phusion_passenger/classic_rails/application_spawner.rb +344 -0
  869. data/lib/phusion_passenger/{railz → classic_rails}/cgi_fixed.rb +2 -2
  870. data/lib/phusion_passenger/{railz → classic_rails}/framework_spawner.rb +75 -98
  871. data/lib/phusion_passenger/{railz → classic_rails}/request_handler.rb +8 -6
  872. data/lib/phusion_passenger/classic_rails_extensions/analytics_logging/ac_base_extension.rb +65 -0
  873. data/lib/phusion_passenger/classic_rails_extensions/analytics_logging/ac_benchmarking_extension.rb +48 -0
  874. data/lib/phusion_passenger/classic_rails_extensions/analytics_logging/ac_rescue_extension.rb +59 -0
  875. data/lib/phusion_passenger/classic_rails_extensions/analytics_logging/ar_abstract_adapter_extension.rb +54 -0
  876. data/lib/phusion_passenger/classic_rails_extensions/analytics_logging/as_cache_extension.rb +130 -0
  877. data/lib/phusion_passenger/classic_rails_extensions/analytics_logging/av_benchmark_helper_extension.rb +47 -0
  878. data/lib/phusion_passenger/classic_rails_extensions/init.rb +123 -0
  879. data/lib/phusion_passenger/console_text_template.rb +1 -1
  880. data/lib/phusion_passenger/constants.rb +9 -5
  881. data/lib/phusion_passenger/debug_logging.rb +104 -0
  882. data/lib/phusion_passenger/dependencies.rb +187 -4
  883. data/lib/phusion_passenger/exceptions.rb +4 -4
  884. data/lib/phusion_passenger/html_template.rb +6 -8
  885. data/lib/phusion_passenger/message_channel.rb +137 -21
  886. data/lib/phusion_passenger/message_client.rb +173 -0
  887. data/lib/phusion_passenger/native_support.rb +108 -0
  888. data/lib/phusion_passenger/packaging.rb +82 -13
  889. data/lib/phusion_passenger/platform_info.rb +84 -475
  890. data/lib/phusion_passenger/platform_info/apache.rb +329 -0
  891. data/lib/phusion_passenger/platform_info/binary_compatibility.rb +187 -0
  892. data/lib/phusion_passenger/platform_info/compiler.rb +154 -0
  893. data/lib/phusion_passenger/{events.rb → platform_info/curl.rb} +26 -23
  894. data/lib/phusion_passenger/platform_info/documentation_tools.rb +35 -0
  895. data/lib/phusion_passenger/platform_info/linux.rb +77 -0
  896. data/lib/phusion_passenger/platform_info/operating_system.rb +51 -0
  897. data/lib/phusion_passenger/platform_info/ruby.rb +198 -0
  898. data/lib/phusion_passenger/platform_info/zlib.rb +38 -0
  899. data/lib/phusion_passenger/plugin.rb +96 -0
  900. data/lib/phusion_passenger/public_api.rb +112 -0
  901. data/lib/phusion_passenger/rack/application_spawner.rb +146 -71
  902. data/lib/phusion_passenger/rack/request_handler.rb +36 -13
  903. data/lib/phusion_passenger/rails3_extensions/init.rb +204 -0
  904. data/lib/phusion_passenger/simple_benchmarking.rb +1 -1
  905. data/lib/phusion_passenger/spawn_manager.rb +137 -141
  906. data/lib/phusion_passenger/standalone/app_finder.rb +153 -0
  907. data/lib/phusion_passenger/standalone/command.rb +237 -0
  908. data/lib/phusion_passenger/standalone/config_file.rb +119 -0
  909. data/lib/phusion_passenger/standalone/help_command.rb +57 -0
  910. data/lib/phusion_passenger/standalone/main.rb +101 -0
  911. data/lib/phusion_passenger/standalone/package_runtime_command.rb +92 -0
  912. data/lib/phusion_passenger/standalone/runtime_installer.rb +466 -0
  913. data/lib/phusion_passenger/standalone/start_command.rb +510 -0
  914. data/lib/phusion_passenger/standalone/status_command.rb +62 -0
  915. data/lib/phusion_passenger/standalone/stop_command.rb +74 -0
  916. data/lib/phusion_passenger/standalone/utils.rb +42 -0
  917. data/lib/phusion_passenger/standalone/version_command.rb +42 -0
  918. data/lib/phusion_passenger/templates/framework_init_error.html.erb +1 -1
  919. data/lib/phusion_passenger/templates/standalone/cannot_write_to_dir.txt.erb +11 -0
  920. data/lib/phusion_passenger/templates/standalone/config.erb +69 -0
  921. data/lib/phusion_passenger/templates/standalone/possible_solutions_for_download_and_extraction_problems.txt.erb +17 -0
  922. data/lib/phusion_passenger/templates/standalone/run_installer_as_root.txt.erb +8 -0
  923. data/lib/phusion_passenger/templates/standalone/welcome.txt.erb +8 -0
  924. data/lib/phusion_passenger/templates/standalone_default_root/index.html +1 -0
  925. data/lib/phusion_passenger/templates/version_not_found.html.erb +2 -2
  926. data/lib/phusion_passenger/utils.rb +476 -125
  927. data/lib/phusion_passenger/utils/file_system_watcher.rb +186 -0
  928. data/lib/phusion_passenger/utils/hosts_file_parser.rb +130 -0
  929. data/lib/phusion_passenger/utils/tmpdir.rb +70 -0
  930. data/lib/phusion_passenger/utils/unseekable_socket.rb +196 -0
  931. data/lib/phusion_passenger/wsgi/application_spawner.rb +24 -20
  932. data/lib/phusion_passenger/wsgi/request_handler.py +1 -1
  933. data/misc/copy_boost_headers.rb +36 -9
  934. data/misc/find_owner_pipe_leaks.rb +1 -1
  935. data/misc/render_error_pages.rb +1 -1
  936. data/misc/union_station_gateway.crt +32 -0
  937. data/test/config.yml.example +24 -13
  938. data/test/cxx/ApplicationPool_PoolTest.cpp +33 -0
  939. data/test/cxx/ApplicationPool_PoolTestCases.cpp +1029 -0
  940. data/test/cxx/ApplicationPool_ServerTest.cpp +308 -0
  941. data/test/cxx/ApplicationPool_Server_PoolTest.cpp +80 -0
  942. data/test/{Base64Test.cpp → cxx/Base64Test.cpp} +4 -2
  943. data/test/{CachedFileStatTest.cpp → cxx/CachedFileStatTest.cpp} +3 -3
  944. data/test/{CxxTestMain.cpp → cxx/CxxTestMain.cpp} +6 -27
  945. data/test/cxx/EventedClientTest.cpp +386 -0
  946. data/test/{FileChangeCheckerTest.cpp → cxx/FileChangeCheckerTest.cpp} +3 -5
  947. data/test/cxx/FileDescriptorTest.cpp +69 -0
  948. data/test/{HttpStatusExtractorTest.cpp → cxx/HttpStatusExtractorTest.cpp} +1 -1
  949. data/test/cxx/IOUtilsTest.cpp +398 -0
  950. data/test/cxx/LoggingTest.cpp +914 -0
  951. data/test/cxx/MessageChannelTest.cpp +672 -0
  952. data/test/cxx/MessageReadersWritersTest.cpp +574 -0
  953. data/test/cxx/MessageServerTest.cpp +383 -0
  954. data/test/{PoolOptionsTest.cpp → cxx/PoolOptionsTest.cpp} +2 -3
  955. data/test/{ScgiRequestParserTest.cpp → cxx/ScgiRequestParserTest.cpp} +53 -1
  956. data/test/cxx/ServerInstanceDirTest.cpp +186 -0
  957. data/test/cxx/SpawnManagerTest.cpp +161 -0
  958. data/test/cxx/StaticStringTest.cpp +86 -0
  959. data/test/{SystemTimeTest.cpp → cxx/SystemTimeTest.cpp} +2 -2
  960. data/test/cxx/TestSupport.cpp +166 -0
  961. data/test/cxx/TestSupport.h +254 -0
  962. data/test/cxx/UtilsTest.cpp +521 -0
  963. data/test/cxx/VariantMapTest.cpp +179 -0
  964. data/test/integration_tests/apache2_tests.rb +198 -127
  965. data/test/integration_tests/cgi_environment_spec.rb +26 -0
  966. data/test/integration_tests/mycook_spec.rb +2 -28
  967. data/test/integration_tests/nginx_tests.rb +125 -16
  968. data/test/integration_tests/spec_helper.rb +19 -0
  969. data/test/oxt/backtrace_test.cpp +19 -59
  970. data/test/oxt/counter.hpp +55 -0
  971. data/test/oxt/dynamic_thread_group_test.cpp +131 -0
  972. data/test/oxt/oxt_test_main.cpp +2 -2
  973. data/test/oxt/spin_lock_test.cpp +59 -0
  974. data/test/oxt/syscall_interruption_test.cpp +1 -1
  975. data/test/ruby/abstract_request_handler_spec.rb +346 -25
  976. data/test/ruby/abstract_server_collection_spec.rb +4 -3
  977. data/test/ruby/abstract_server_spec.rb +37 -27
  978. data/test/ruby/admin_tools_spec.rb +362 -0
  979. data/test/ruby/analytics_logger_spec.rb +253 -0
  980. data/test/ruby/{application_spec.rb → app_process_spec.rb} +14 -14
  981. data/test/ruby/classic_rails/application_spawner_spec.rb +89 -0
  982. data/test/ruby/classic_rails/framework_spawner_spec.rb +92 -0
  983. data/test/ruby/debug_logging_spec.rb +141 -0
  984. data/test/ruby/message_channel_spec.rb +51 -25
  985. data/test/ruby/rack/application_spawner_spec.rb +99 -82
  986. data/test/ruby/shared/abstract_server_spec.rb +23 -0
  987. data/test/ruby/shared/rails/analytics_logging_extensions_spec.rb +375 -0
  988. data/test/ruby/shared/spawners/classic_rails/framework_spawner_spec.rb +38 -0
  989. data/test/ruby/shared/spawners/classic_rails/lack_of_rails_gem_version_spec.rb +19 -0
  990. data/test/ruby/shared/spawners/classic_rails/spawner_spec.rb +15 -0
  991. data/test/ruby/shared/spawners/non_preloading_spawner_spec.rb +27 -0
  992. data/test/ruby/shared/spawners/preloading_spawner_spec.rb +29 -0
  993. data/test/ruby/shared/spawners/reload_all_spec.rb +36 -0
  994. data/test/ruby/shared/spawners/reload_single_spec.rb +52 -0
  995. data/test/ruby/shared/spawners/spawn_server_spec.rb +28 -0
  996. data/test/ruby/shared/spawners/spawner_spec.rb +273 -0
  997. data/test/ruby/shared/utils/pseudo_io_spec.rb +60 -0
  998. data/test/ruby/spawn_manager_spec.rb +104 -175
  999. data/test/ruby/spec_helper.rb +104 -0
  1000. data/test/ruby/utils/file_system_watcher_spec.rb +221 -0
  1001. data/test/ruby/utils/hosts_file_parser.rb +258 -0
  1002. data/test/ruby/utils/unseekable_socket_spec.rb +66 -0
  1003. data/test/ruby/utils_spec.rb +410 -59
  1004. data/test/ruby/wsgi/application_spawner_spec.rb +16 -20
  1005. data/test/stub/apache2/httpd.conf.erb +11 -6
  1006. data/test/stub/message_channel.rb +3 -1
  1007. data/test/stub/message_channel_2.rb +3 -1
  1008. data/test/stub/message_channel_3.rb +5 -3
  1009. data/test/stub/nginx/nginx.conf.erb +3 -2
  1010. data/test/stub/rails_apps/1.2/empty/Rakefile +10 -0
  1011. data/test/stub/rails_apps/1.2/empty/app/controllers/application.rb +7 -0
  1012. data/test/stub/rails_apps/{foobar → 1.2/empty}/app/helpers/application_helper.rb +0 -0
  1013. data/test/stub/rails_apps/{mycook → 1.2/empty}/config/boot.rb +3 -3
  1014. data/test/stub/rails_apps/1.2/empty/config/database.yml +31 -0
  1015. data/test/stub/rails_apps/1.2/empty/config/environment.rb +66 -0
  1016. data/test/stub/rails_apps/1.2/empty/config/environments/development.rb +21 -0
  1017. data/test/stub/rails_apps/{foobar → 1.2/empty}/config/environments/production.rb +0 -0
  1018. data/test/stub/rails_apps/1.2/empty/config/environments/staging.rb +18 -0
  1019. data/test/stub/rails_apps/1.2/empty/config/environments/test.rb +19 -0
  1020. data/test/stub/rails_apps/1.2/empty/config/routes.rb +23 -0
  1021. data/test/stub/rails_apps/1.2/empty/doc/README_FOR_APP +2 -0
  1022. data/test/stub/rails_apps/{mycook → 1.2/empty}/public/404.html +0 -0
  1023. data/test/stub/rails_apps/1.2/empty/public/500.html +30 -0
  1024. data/test/stub/rails_apps/1.2/empty/public/dispatch.cgi +10 -0
  1025. data/test/stub/rails_apps/1.2/empty/public/dispatch.fcgi +24 -0
  1026. data/test/stub/rails_apps/1.2/empty/public/dispatch.rb +10 -0
  1027. data/test/stub/rails_apps/{mycook → 1.2/empty}/public/favicon.ico +0 -0
  1028. data/test/stub/rails_apps/{mycook → 1.2/empty}/public/images/rails.png +0 -0
  1029. data/test/stub/rails_apps/1.2/empty/public/robots.txt +1 -0
  1030. data/test/stub/rails_apps/1.2/empty/script/about +3 -0
  1031. data/test/stub/rails_apps/1.2/empty/script/breakpointer +3 -0
  1032. data/test/stub/rails_apps/1.2/empty/script/console +3 -0
  1033. data/test/stub/rails_apps/1.2/empty/script/destroy +3 -0
  1034. data/test/stub/rails_apps/1.2/empty/script/generate +3 -0
  1035. data/test/stub/rails_apps/1.2/empty/script/performance/benchmarker +3 -0
  1036. data/test/stub/rails_apps/1.2/empty/script/performance/profiler +3 -0
  1037. data/test/stub/rails_apps/1.2/empty/script/plugin +3 -0
  1038. data/test/stub/rails_apps/1.2/empty/script/process/inspector +3 -0
  1039. data/test/stub/rails_apps/1.2/empty/script/process/reaper +3 -0
  1040. data/test/stub/rails_apps/1.2/empty/script/process/spawner +3 -0
  1041. data/test/stub/rails_apps/1.2/empty/script/runner +3 -0
  1042. data/test/stub/rails_apps/1.2/empty/script/server +3 -0
  1043. data/test/stub/rails_apps/1.2/empty/test/test_helper.rb +28 -0
  1044. data/test/stub/rails_apps/2.0/empty/Rakefile +10 -0
  1045. data/test/stub/rails_apps/2.0/empty/app/controllers/application.rb +10 -0
  1046. data/test/stub/rails_apps/{mycook → 2.0/empty}/app/helpers/application_helper.rb +0 -0
  1047. data/test/stub/rails_apps/{foobar → 2.0/empty}/config/boot.rb +3 -3
  1048. data/test/stub/rails_apps/2.0/empty/config/database.yml +31 -0
  1049. data/test/stub/rails_apps/2.0/empty/config/environment.rb +59 -0
  1050. data/test/stub/rails_apps/{mycook → 2.0/empty}/config/environments/development.rb +1 -1
  1051. data/test/stub/rails_apps/2.0/empty/config/environments/production.rb +18 -0
  1052. data/test/stub/rails_apps/2.0/empty/config/environments/staging.rb +18 -0
  1053. data/test/stub/rails_apps/2.0/empty/config/environments/test.rb +22 -0
  1054. data/test/stub/rails_apps/{foobar → 2.0/empty}/config/initializers/inflections.rb +0 -0
  1055. data/test/stub/rails_apps/{foobar → 2.0/empty}/config/initializers/mime_types.rb +0 -0
  1056. data/test/stub/rails_apps/{foobar → 2.0/empty}/config/routes.rb +0 -0
  1057. data/test/stub/rails_apps/2.0/empty/doc/README_FOR_APP +2 -0
  1058. data/test/stub/rails_apps/2.0/empty/public/404.html +30 -0
  1059. data/test/stub/rails_apps/{mycook → 2.0/empty}/public/422.html +0 -0
  1060. data/test/stub/rails_apps/{mycook → 2.0/empty}/public/500.html +0 -0
  1061. data/test/stub/rails_apps/2.0/empty/public/dispatch.cgi +10 -0
  1062. data/test/stub/rails_apps/2.0/empty/public/dispatch.fcgi +24 -0
  1063. data/test/stub/rails_apps/2.0/empty/public/dispatch.rb +10 -0
  1064. data/test/stub/rails_apps/2.0/empty/public/favicon.ico +0 -0
  1065. data/test/stub/rails_apps/2.0/empty/public/images/rails.png +0 -0
  1066. data/test/stub/rails_apps/{mycook → 2.0/empty}/public/robots.txt +0 -0
  1067. data/test/stub/rails_apps/2.0/empty/script/about +3 -0
  1068. data/test/stub/rails_apps/2.0/empty/script/console +3 -0
  1069. data/test/stub/rails_apps/2.0/empty/script/destroy +3 -0
  1070. data/test/stub/rails_apps/2.0/empty/script/generate +3 -0
  1071. data/test/stub/rails_apps/2.0/empty/script/performance/benchmarker +3 -0
  1072. data/test/stub/rails_apps/2.0/empty/script/performance/profiler +3 -0
  1073. data/test/stub/rails_apps/2.0/empty/script/performance/request +3 -0
  1074. data/test/stub/rails_apps/2.0/empty/script/plugin +3 -0
  1075. data/test/stub/rails_apps/2.0/empty/script/process/inspector +3 -0
  1076. data/test/stub/rails_apps/2.0/empty/script/process/reaper +3 -0
  1077. data/test/stub/rails_apps/2.0/empty/script/process/spawner +3 -0
  1078. data/test/stub/rails_apps/2.0/empty/script/runner +3 -0
  1079. data/test/stub/rails_apps/2.0/empty/script/server +3 -0
  1080. data/test/stub/rails_apps/2.0/empty/test/test_helper.rb +38 -0
  1081. data/test/stub/rails_apps/2.2/empty/Rakefile +10 -0
  1082. data/test/stub/rails_apps/2.2/empty/app/controllers/application.rb +15 -0
  1083. data/test/stub/rails_apps/2.2/empty/app/helpers/application_helper.rb +3 -0
  1084. data/test/stub/rails_apps/2.2/empty/config/boot.rb +109 -0
  1085. data/test/stub/rails_apps/2.2/empty/config/database.yml +31 -0
  1086. data/test/stub/rails_apps/2.2/empty/config/environment.rb +75 -0
  1087. data/test/stub/rails_apps/{foobar → 2.2/empty}/config/environments/development.rb +0 -0
  1088. data/test/stub/rails_apps/2.2/empty/config/environments/production.rb +24 -0
  1089. data/test/stub/rails_apps/2.2/empty/config/environments/staging.rb +24 -0
  1090. data/test/stub/rails_apps/2.2/empty/config/environments/test.rb +22 -0
  1091. data/test/stub/rails_apps/2.2/empty/config/initializers/inflections.rb +10 -0
  1092. data/test/stub/rails_apps/{mycook → 2.2/empty}/config/initializers/mime_types.rb +0 -0
  1093. data/test/stub/rails_apps/2.2/empty/config/initializers/new_rails_defaults.rb +17 -0
  1094. data/test/stub/rails_apps/2.2/empty/config/locales/en.yml +5 -0
  1095. data/test/stub/rails_apps/2.2/empty/config/routes.rb +43 -0
  1096. data/test/stub/rails_apps/2.2/empty/doc/README_FOR_APP +5 -0
  1097. data/test/stub/rails_apps/2.2/empty/public/404.html +30 -0
  1098. data/test/stub/rails_apps/2.2/empty/public/422.html +30 -0
  1099. data/test/stub/rails_apps/2.2/empty/public/500.html +33 -0
  1100. data/test/stub/rails_apps/2.2/empty/public/dispatch.cgi +10 -0
  1101. data/test/stub/rails_apps/2.2/empty/public/dispatch.fcgi +24 -0
  1102. data/test/stub/rails_apps/2.2/empty/public/dispatch.rb +10 -0
  1103. data/test/stub/rails_apps/2.2/empty/public/favicon.ico +0 -0
  1104. data/test/stub/rails_apps/2.2/empty/public/images/rails.png +0 -0
  1105. data/test/stub/rails_apps/2.2/empty/public/robots.txt +5 -0
  1106. data/test/stub/rails_apps/2.2/empty/script/about +4 -0
  1107. data/test/stub/rails_apps/2.2/empty/script/console +3 -0
  1108. data/test/stub/rails_apps/2.2/empty/script/dbconsole +3 -0
  1109. data/test/stub/rails_apps/2.2/empty/script/destroy +3 -0
  1110. data/test/stub/rails_apps/2.2/empty/script/generate +3 -0
  1111. data/test/stub/rails_apps/2.2/empty/script/performance/benchmarker +3 -0
  1112. data/test/stub/rails_apps/2.2/empty/script/performance/profiler +3 -0
  1113. data/test/stub/rails_apps/2.2/empty/script/performance/request +3 -0
  1114. data/test/stub/rails_apps/2.2/empty/script/plugin +3 -0
  1115. data/test/stub/rails_apps/2.2/empty/script/process/inspector +3 -0
  1116. data/test/stub/rails_apps/2.2/empty/script/process/reaper +3 -0
  1117. data/test/stub/rails_apps/2.2/empty/script/process/spawner +3 -0
  1118. data/test/stub/rails_apps/2.2/empty/script/runner +3 -0
  1119. data/test/stub/rails_apps/2.2/empty/script/server +3 -0
  1120. data/test/stub/rails_apps/2.2/empty/test/performance/browsing_test.rb +9 -0
  1121. data/test/stub/rails_apps/2.2/empty/test/test_helper.rb +38 -0
  1122. data/test/stub/rails_apps/2.3/empty/Rakefile +10 -0
  1123. data/test/stub/rails_apps/2.3/empty/app/controllers/application_controller.rb +10 -0
  1124. data/test/stub/rails_apps/2.3/empty/app/helpers/application_helper.rb +3 -0
  1125. data/test/stub/rails_apps/2.3/empty/config/boot.rb +110 -0
  1126. data/test/stub/rails_apps/2.3/empty/config/database.yml +31 -0
  1127. data/test/stub/rails_apps/2.3/empty/config/environment.rb +41 -0
  1128. data/test/stub/rails_apps/2.3/empty/config/environments/development.rb +17 -0
  1129. data/test/stub/rails_apps/2.3/empty/config/environments/production.rb +28 -0
  1130. data/test/stub/rails_apps/2.3/empty/config/environments/staging.rb +28 -0
  1131. data/test/stub/rails_apps/2.3/empty/config/environments/test.rb +28 -0
  1132. data/test/stub/rails_apps/2.3/empty/config/initializers/backtrace_silencers.rb +7 -0
  1133. data/test/stub/rails_apps/2.3/empty/config/initializers/inflections.rb +10 -0
  1134. data/test/stub/rails_apps/2.3/empty/config/initializers/mime_types.rb +5 -0
  1135. data/test/stub/rails_apps/2.3/empty/config/initializers/new_rails_defaults.rb +21 -0
  1136. data/test/stub/rails_apps/2.3/empty/config/initializers/session_store.rb +15 -0
  1137. data/test/stub/rails_apps/2.3/empty/config/locales/en.yml +5 -0
  1138. data/test/stub/rails_apps/2.3/empty/config/routes.rb +43 -0
  1139. data/test/stub/rails_apps/2.3/empty/db/seeds.rb +7 -0
  1140. data/test/stub/rails_apps/2.3/empty/doc/README_FOR_APP +2 -0
  1141. data/test/stub/rails_apps/2.3/empty/public/404.html +30 -0
  1142. data/test/stub/rails_apps/2.3/empty/public/422.html +30 -0
  1143. data/test/stub/rails_apps/2.3/empty/public/500.html +30 -0
  1144. data/test/stub/rails_apps/2.3/empty/public/favicon.ico +0 -0
  1145. data/test/stub/rails_apps/2.3/empty/public/images/rails.png +0 -0
  1146. data/test/stub/rails_apps/2.3/empty/public/robots.txt +5 -0
  1147. data/test/stub/rails_apps/2.3/empty/script/about +4 -0
  1148. data/test/stub/rails_apps/2.3/empty/script/console +3 -0
  1149. data/test/stub/rails_apps/2.3/empty/script/dbconsole +3 -0
  1150. data/test/stub/rails_apps/2.3/empty/script/destroy +3 -0
  1151. data/test/stub/rails_apps/2.3/empty/script/generate +3 -0
  1152. data/test/stub/rails_apps/2.3/empty/script/performance/benchmarker +3 -0
  1153. data/test/stub/rails_apps/2.3/empty/script/performance/profiler +3 -0
  1154. data/test/stub/rails_apps/2.3/empty/script/plugin +3 -0
  1155. data/test/stub/rails_apps/2.3/empty/script/runner +3 -0
  1156. data/test/stub/rails_apps/2.3/empty/script/server +3 -0
  1157. data/test/stub/rails_apps/2.3/empty/test/performance/browsing_test.rb +9 -0
  1158. data/test/stub/rails_apps/2.3/empty/test/test_helper.rb +38 -0
  1159. data/test/stub/rails_apps/2.3/foobar/Rakefile +10 -0
  1160. data/test/stub/rails_apps/{foobar/app/controllers/application.rb → 2.3/foobar/app/controllers/application_controller.rb} +0 -0
  1161. data/test/stub/rails_apps/{foobar → 2.3/foobar}/app/controllers/bar_controller_1.rb +0 -0
  1162. data/test/stub/rails_apps/{foobar → 2.3/foobar}/app/controllers/bar_controller_2.rb +0 -0
  1163. data/test/stub/rails_apps/{foobar → 2.3/foobar}/app/controllers/foo_controller.rb +0 -0
  1164. data/test/stub/rails_apps/2.3/foobar/app/helpers/application_helper.rb +3 -0
  1165. data/test/stub/rails_apps/2.3/foobar/config/boot.rb +110 -0
  1166. data/test/stub/rails_apps/{foobar → 2.3/foobar}/config/database.yml +0 -0
  1167. data/test/stub/rails_apps/{foobar → 2.3/foobar}/config/environment.rb +1 -1
  1168. data/test/stub/rails_apps/2.3/foobar/config/environments/development.rb +17 -0
  1169. data/test/stub/rails_apps/2.3/foobar/config/environments/production.rb +18 -0
  1170. data/test/stub/rails_apps/2.3/foobar/config/environments/staging.rb +18 -0
  1171. data/test/stub/rails_apps/{mycook → 2.3/foobar}/config/initializers/inflections.rb +0 -0
  1172. data/test/stub/rails_apps/2.3/foobar/config/initializers/mime_types.rb +5 -0
  1173. data/test/stub/rails_apps/2.3/foobar/config/routes.rb +35 -0
  1174. data/test/stub/rails_apps/2.3/foobar/script/about +3 -0
  1175. data/test/stub/rails_apps/2.3/foobar/script/console +3 -0
  1176. data/test/stub/rails_apps/2.3/foobar/script/dbconsole +3 -0
  1177. data/test/stub/rails_apps/2.3/foobar/script/destroy +3 -0
  1178. data/test/stub/rails_apps/2.3/foobar/script/generate +3 -0
  1179. data/test/stub/rails_apps/2.3/foobar/script/performance/benchmarker +3 -0
  1180. data/test/stub/rails_apps/2.3/foobar/script/performance/profiler +3 -0
  1181. data/test/stub/rails_apps/2.3/foobar/script/performance/request +3 -0
  1182. data/test/stub/rails_apps/2.3/foobar/script/plugin +3 -0
  1183. data/test/stub/rails_apps/2.3/foobar/script/process/inspector +3 -0
  1184. data/test/stub/rails_apps/2.3/foobar/script/process/reaper +3 -0
  1185. data/test/stub/rails_apps/2.3/foobar/script/process/spawner +3 -0
  1186. data/test/stub/rails_apps/2.3/foobar/script/runner +3 -0
  1187. data/test/stub/rails_apps/2.3/foobar/script/server +3 -0
  1188. data/test/stub/rails_apps/2.3/mycook/Rakefile +10 -0
  1189. data/test/stub/rails_apps/{mycook/app/controllers/application.rb → 2.3/mycook/app/controllers/application_controller.rb} +0 -0
  1190. data/test/stub/rails_apps/{mycook → 2.3/mycook}/app/controllers/recipes_controller.rb +0 -0
  1191. data/test/stub/rails_apps/{mycook → 2.3/mycook}/app/controllers/uploads_controller.rb +0 -0
  1192. data/test/stub/rails_apps/{mycook → 2.3/mycook}/app/controllers/welcome_controller.rb +0 -0
  1193. data/test/stub/rails_apps/2.3/mycook/app/helpers/application_helper.rb +3 -0
  1194. data/test/stub/rails_apps/{mycook → 2.3/mycook}/app/views/layouts/default.rhtml +0 -0
  1195. data/test/stub/rails_apps/{mycook → 2.3/mycook}/app/views/recipes/create.rhtml +0 -0
  1196. data/test/stub/rails_apps/{mycook → 2.3/mycook}/app/views/recipes/index.rhtml +0 -0
  1197. data/test/stub/rails_apps/{mycook → 2.3/mycook}/app/views/recipes/new.rhtml +0 -0
  1198. data/test/stub/rails_apps/{mycook → 2.3/mycook}/app/views/uploads/index.rhtml +0 -0
  1199. data/test/stub/rails_apps/{mycook → 2.3/mycook}/app/views/uploads/new.html.erb +0 -0
  1200. data/test/stub/rails_apps/{mycook → 2.3/mycook}/app/views/welcome/cached.rhtml +0 -0
  1201. data/test/stub/rails_apps/{mycook → 2.3/mycook}/app/views/welcome/index.rhtml +0 -0
  1202. data/test/stub/rails_apps/2.3/mycook/config/boot.rb +110 -0
  1203. data/test/stub/rails_apps/{mycook → 2.3/mycook}/config/database.yml +0 -0
  1204. data/test/stub/rails_apps/{mycook → 2.3/mycook}/config/environment.rb +1 -1
  1205. data/test/stub/rails_apps/2.3/mycook/config/environments/development.rb +18 -0
  1206. data/test/stub/rails_apps/{mycook → 2.3/mycook}/config/environments/production.rb +0 -0
  1207. data/test/stub/rails_apps/2.3/mycook/config/initializers/inflections.rb +10 -0
  1208. data/test/stub/rails_apps/2.3/mycook/config/initializers/mime_types.rb +5 -0
  1209. data/test/stub/rails_apps/{mycook → 2.3/mycook}/config/routes.rb +0 -0
  1210. data/test/stub/rails_apps/{mycook → 2.3/mycook}/log/useless.txt +0 -0
  1211. data/test/stub/rails_apps/2.3/mycook/public/404.html +30 -0
  1212. data/test/stub/rails_apps/2.3/mycook/public/422.html +30 -0
  1213. data/test/stub/rails_apps/2.3/mycook/public/500.html +30 -0
  1214. data/test/stub/rails_apps/{mycook → 2.3/mycook}/public/dispatch.cgi +0 -0
  1215. data/test/stub/rails_apps/{mycook → 2.3/mycook}/public/dispatch.fcgi +0 -0
  1216. data/test/stub/rails_apps/{mycook → 2.3/mycook}/public/dispatch.rb +1 -1
  1217. data/test/stub/rails_apps/2.3/mycook/public/favicon.ico +0 -0
  1218. data/test/stub/rails_apps/{mycook → 2.3/mycook}/public/images/angrywizard.gif +0 -0
  1219. data/test/stub/rails_apps/{mycook → 2.3/mycook}/public/images/cookbook.gif +0 -0
  1220. data/test/stub/rails_apps/{mycook → 2.3/mycook}/public/images/header.png +0 -0
  1221. data/test/stub/rails_apps/2.3/mycook/public/images/rails.png +0 -0
  1222. data/test/stub/rails_apps/{mycook → 2.3/mycook}/public/javascripts/application.js +0 -0
  1223. data/test/stub/rails_apps/{mycook → 2.3/mycook}/public/javascripts/controls.js +73 -73
  1224. data/test/stub/rails_apps/{mycook → 2.3/mycook}/public/javascripts/dragdrop.js +166 -165
  1225. data/test/stub/rails_apps/{mycook → 2.3/mycook}/public/javascripts/effects.js +174 -166
  1226. data/test/stub/rails_apps/{mycook → 2.3/mycook}/public/javascripts/prototype.js +362 -267
  1227. data/test/stub/rails_apps/2.3/mycook/public/robots.txt +5 -0
  1228. data/test/stub/rails_apps/{mycook → 2.3/mycook}/public/uploads.html +0 -0
  1229. data/test/stub/rails_apps/{mycook → 2.3/mycook}/public/welcome/cached.html +0 -0
  1230. data/test/stub/rails_apps/2.3/mycook/script/about +3 -0
  1231. data/test/stub/rails_apps/2.3/mycook/script/console +3 -0
  1232. data/test/stub/rails_apps/2.3/mycook/script/dbconsole +3 -0
  1233. data/test/stub/rails_apps/2.3/mycook/script/destroy +3 -0
  1234. data/test/stub/rails_apps/2.3/mycook/script/generate +3 -0
  1235. data/test/stub/rails_apps/2.3/mycook/script/performance/benchmarker +3 -0
  1236. data/test/stub/rails_apps/2.3/mycook/script/performance/profiler +3 -0
  1237. data/test/stub/rails_apps/2.3/mycook/script/performance/request +3 -0
  1238. data/test/stub/rails_apps/2.3/mycook/script/plugin +3 -0
  1239. data/test/stub/rails_apps/2.3/mycook/script/process/inspector +3 -0
  1240. data/test/stub/rails_apps/2.3/mycook/script/process/reaper +3 -0
  1241. data/test/stub/rails_apps/2.3/mycook/script/process/spawner +3 -0
  1242. data/test/stub/rails_apps/2.3/mycook/script/runner +3 -0
  1243. data/test/stub/rails_apps/2.3/mycook/script/server +3 -0
  1244. data/test/stub/rails_apps/{mycook → 2.3/mycook}/sites/some.site/public/uploads.html +0 -0
  1245. data/test/stub/rails_apps/{mycook → 2.3/mycook}/sites/some.site/public/welcome/cached.html +0 -0
  1246. data/test/stub/rails_apps/{mycook → 2.3/mycook}/tmp/cache/useless.txt +0 -0
  1247. data/test/stub/rails_apps/{mycook → 2.3/mycook}/tmp/pids/useless.txt +0 -0
  1248. data/test/stub/rails_apps/{mycook → 2.3/mycook}/tmp/sessions/useless.txt +0 -0
  1249. data/test/stub/rails_apps/{mycook → 2.3/mycook}/tmp/sockets/useless.txt +0 -0
  1250. data/test/stub/rails_apps/3.0/empty/Gemfile +22 -0
  1251. data/test/stub/rails_apps/3.0/empty/Rakefile +10 -0
  1252. data/test/stub/rails_apps/3.0/empty/app/controllers/application_controller.rb +4 -0
  1253. data/test/stub/rails_apps/3.0/empty/app/helpers/application_helper.rb +2 -0
  1254. data/test/stub/rails_apps/3.0/empty/app/views/layouts/application.html.erb +14 -0
  1255. data/test/stub/rails_apps/3.0/empty/config.ru +4 -0
  1256. data/test/stub/rails_apps/3.0/empty/config/application.rb +48 -0
  1257. data/test/stub/rails_apps/3.0/empty/config/boot.rb +13 -0
  1258. data/test/stub/rails_apps/3.0/empty/config/database.yml +22 -0
  1259. data/test/stub/rails_apps/3.0/empty/config/environment.rb +5 -0
  1260. data/test/stub/rails_apps/3.0/empty/config/environments/development.rb +19 -0
  1261. data/test/stub/rails_apps/3.0/empty/config/environments/production.rb +48 -0
  1262. data/test/stub/rails_apps/3.0/empty/config/environments/test.rb +32 -0
  1263. data/test/stub/rails_apps/3.0/empty/config/initializers/backtrace_silencers.rb +7 -0
  1264. data/test/stub/rails_apps/3.0/empty/config/initializers/inflections.rb +10 -0
  1265. data/test/stub/rails_apps/3.0/empty/config/initializers/mime_types.rb +5 -0
  1266. data/test/stub/rails_apps/3.0/empty/config/initializers/passenger.rb +1 -0
  1267. data/test/stub/rails_apps/3.0/empty/config/initializers/secret_token.rb +7 -0
  1268. data/test/stub/rails_apps/3.0/empty/config/initializers/session_store.rb +8 -0
  1269. data/test/stub/rails_apps/3.0/empty/config/locales/en.yml +5 -0
  1270. data/test/stub/rails_apps/3.0/empty/config/routes.rb +58 -0
  1271. data/test/stub/rails_apps/3.0/empty/db/seeds.rb +7 -0
  1272. data/test/stub/rails_apps/3.0/empty/doc/README_FOR_APP +2 -0
  1273. data/test/stub/rails_apps/3.0/empty/log/development.log +3 -0
  1274. data/test/stub/rails_apps/3.0/empty/public/404.html +26 -0
  1275. data/test/stub/rails_apps/3.0/empty/public/422.html +26 -0
  1276. data/test/stub/rails_apps/3.0/empty/public/500.html +26 -0
  1277. data/test/stub/rails_apps/3.0/empty/public/favicon.ico +0 -0
  1278. data/test/stub/rails_apps/3.0/empty/public/index.html +279 -0
  1279. data/test/stub/rails_apps/3.0/empty/public/robots.txt +5 -0
  1280. data/test/stub/rails_apps/3.0/empty/script/rails +9 -0
  1281. data/test/stub/rails_apps/3.0/empty/test/performance/browsing_test.rb +9 -0
  1282. data/test/stub/rails_apps/3.0/empty/test/test_helper.rb +13 -0
  1283. data/test/stub/spawn_server.rb +4 -2
  1284. data/test/stub/vendor_rails/minimal/actionpack/lib/action_controller.rb +3 -0
  1285. data/test/stub/vendor_rails/minimal/railties/lib/initializer.rb +7 -2
  1286. data/test/support/apache2_controller.rb +10 -2
  1287. data/test/support/nginx_controller.rb +3 -2
  1288. data/test/support/test_helper.rb +282 -46
  1289. data/test/{support → tut}/tut.h +6 -0
  1290. data/test/{support → tut}/tut_reporter.h +0 -0
  1291. metadata +824 -266
  1292. data/benchmark/ApplicationPool.cpp +0 -52
  1293. data/benchmark/accept_vs_socketpair_vs_named_pipes.rb +0 -126
  1294. data/benchmark/dispatcher.rb +0 -42
  1295. data/benchmark/overhead_of_password_checking.rb +0 -81
  1296. data/benchmark/socket_connections_vs_persistent_pipe.rb +0 -99
  1297. data/benchmark/unix_sockets_vs_pipes.rb +0 -83
  1298. data/ext/boost/LICENSE.TXT +0 -23
  1299. data/ext/boost/VERSION.TXT +0 -1
  1300. data/ext/boost/detail/sp_counted_base.hpp +0 -81
  1301. data/ext/boost/src/pthread/exceptions.cpp +0 -146
  1302. data/ext/boost/src/win32/exceptions.cpp +0 -124
  1303. data/ext/boost/src/win32/thread.cpp +0 -629
  1304. data/ext/boost/src/win32/timeconv.inl +0 -130
  1305. data/ext/boost/src/win32/tss_dll.cpp +0 -72
  1306. data/ext/boost/src/win32/tss_pe.cpp +0 -269
  1307. data/ext/boost/thread/pthread/thread.hpp +0 -339
  1308. data/ext/boost/thread/pthread/tss.hpp +0 -103
  1309. data/ext/common/Application.h +0 -511
  1310. data/ext/common/ApplicationPoolServer.h +0 -794
  1311. data/ext/common/ApplicationPoolServerExecutable.cpp +0 -743
  1312. data/ext/common/ApplicationPoolStatusReporter.h +0 -336
  1313. data/ext/common/DummySpawnManager.h +0 -108
  1314. data/ext/common/StandardApplicationPool.h +0 -821
  1315. data/ext/common/SystemTime.h +0 -88
  1316. data/lib/phusion_passenger/admin_tools/control_process.rb +0 -150
  1317. data/lib/phusion_passenger/railz/application_spawner.rb +0 -463
  1318. data/lib/phusion_passenger/templates/invalid_app_root.html.erb +0 -9
  1319. data/test/ApplicationPoolServerTest.cpp +0 -114
  1320. data/test/ApplicationPoolServer_ApplicationPoolTest.cpp +0 -33
  1321. data/test/ApplicationPoolTest.cpp +0 -599
  1322. data/test/MessageChannelTest.cpp +0 -320
  1323. data/test/SpawnManagerTest.cpp +0 -64
  1324. data/test/StandardApplicationPoolTest.cpp +0 -27
  1325. data/test/StaticStringTest.cpp +0 -51
  1326. data/test/UtilsTest.cpp +0 -257
  1327. data/test/ruby/rails/application_spawner_spec.rb +0 -159
  1328. data/test/ruby/rails/framework_spawner_spec.rb +0 -133
  1329. data/test/ruby/rails/minimal_spawner_spec.rb +0 -93
  1330. data/test/ruby/rails/spawner_error_handling_spec.rb +0 -107
  1331. data/test/ruby/rails/spawner_privilege_lowering_spec.rb +0 -97
  1332. data/test/ruby/spawn_server_spec.rb +0 -26
  1333. data/test/stub/MessageServer.dSYM/Contents/Info.plist +0 -25
  1334. data/test/stub/MessageServer.dSYM/Contents/Resources/DWARF/MessageServer +0 -0
  1335. data/test/support/Support.cpp +0 -84
  1336. data/test/support/Support.h +0 -118
  1337. data/test/support/config.rb +0 -38
  1338. data/test/support/run_rspec_tests.rb +0 -10
@@ -1,10 +1,13 @@
1
- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2
- <html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
1
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2
+ <html xmlns="http://www.w3.org/1999/xhtml">
3
+ <head>
4
+ <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
3
5
  <title>Passenger: Passenger::PoolOptions Struct Reference</title>
4
- <link href="tabs.css" rel="stylesheet" type="text/css">
5
- <link href="doxygen.css" rel="stylesheet" type="text/css">
6
- </head><body>
7
- <!-- Generated by Doxygen 1.5.8 -->
6
+ <link href="tabs.css" rel="stylesheet" type="text/css"/>
7
+ <link href="doxygen.css" rel="stylesheet" type="text/css"/>
8
+ </head>
9
+ <body>
10
+ <!-- Generated by Doxygen 1.6.2 -->
8
11
  <div class="navigation" id="top">
9
12
  <div class="tabs">
10
13
  <ul>
@@ -26,125 +29,100 @@
26
29
  </div>
27
30
  </div>
28
31
  <div class="contents">
29
- <h1>Passenger::PoolOptions Struct Reference</h1><!-- doxytag: class="Passenger::PoolOptions" -->This struct encapsulates information for ApplicationPool::get() and for <a class="el" href="classPassenger_1_1SpawnManager.html#88a94ba4d41dab492cb1dc8a0f998973" title="Spawn a new application process.">SpawnManager::spawn()</a>, such as which application is to be spawned.
30
- <a href="#_details">More...</a>
31
- <p>
32
- <code>#include &lt;<a class="el" href="PoolOptions_8h-source.html">PoolOptions.h</a>&gt;</code>
33
- <p>
34
-
35
- <p>
36
- <a href="structPassenger_1_1PoolOptions-members.html">List of all members.</a><table border="0" cellpadding="0" cellspacing="0">
37
- <tr><td></td></tr>
38
- <tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>
39
- <tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structPassenger_1_1PoolOptions.html#b2b7c72144c108657e3ad4ac9f6e26f4">PoolOptions</a> ()</td></tr>
40
-
41
- <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Creates a new <a class="el" href="structPassenger_1_1PoolOptions.html" title="This struct encapsulates information for ApplicationPool::get() and for SpawnManager::spawn()...">PoolOptions</a> object with the default values filled in. <a href="#b2b7c72144c108657e3ad4ac9f6e26f4"></a><br></td></tr>
42
- <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="435aca3700e957a4eb7afbe7dc50cd3d"></a><!-- doxytag: member="Passenger::PoolOptions::PoolOptions" ref="435aca3700e957a4eb7afbe7dc50cd3d" args="(const string &amp;appRoot, string appGroupName=&quot;&quot;, const string &amp;appType=&quot;rails&quot;, const string &amp;environment=&quot;production&quot;, const string &amp;spawnMethod=&quot;smart&#45;lv2&quot;, const string &amp;user=&quot;&quot;, const string &amp;group=&quot;&quot;, const string &amp;defaultUser=&quot;&quot;, const string &amp;defaultGroup=&quot;&quot;, long frameworkSpawnerTimeout=&#45;1, long appSpawnerTimeout=&#45;1, const string &amp;baseURI=&quot;/&quot;, unsigned long maxRequests=0, unsigned long minProcesses=0, bool useGlobalQueue=false, unsigned long statThrottleRate=0, const string &amp;restartDir=&quot;&quot;, Account::Rights rights=DEFAULT_BACKEND_ACCOUNT_RIGHTS, bool debugger=false, const AnalyticsLogPtr &amp;log=AnalyticsLogPtr())" -->
43
- &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structPassenger_1_1PoolOptions.html#435aca3700e957a4eb7afbe7dc50cd3d">PoolOptions</a> (const string &amp;<a class="el" href="structPassenger_1_1PoolOptions.html#822039d204b48d9ed49184646734acf3">appRoot</a>, string <a class="el" href="structPassenger_1_1PoolOptions.html#dce57f30c4f33d8b55726d0eaa15addf">appGroupName</a>=&quot;&quot;, const string &amp;<a class="el" href="structPassenger_1_1PoolOptions.html#5e1c129ae0b8be350c7ed238eec8a8c9">appType</a>=&quot;rails&quot;, const string &amp;<a class="el" href="structPassenger_1_1PoolOptions.html#4324bb724859905f9991faa9b90aedbc">environment</a>=&quot;production&quot;, const string &amp;<a class="el" href="structPassenger_1_1PoolOptions.html#feb629e3ced79f5a2dbccc1beeeeab9e">spawnMethod</a>=&quot;smart-lv2&quot;, const string &amp;<a class="el" href="structPassenger_1_1PoolOptions.html#7bb617271b0a61645b17b9815ebf300c">user</a>=&quot;&quot;, const string &amp;<a class="el" href="structPassenger_1_1PoolOptions.html#6292899199727c513fd641d313c42372">group</a>=&quot;&quot;, const string &amp;<a class="el" href="structPassenger_1_1PoolOptions.html#f9e15d356066ebd5f1454dca7937374f">defaultUser</a>=&quot;&quot;, const string &amp;<a class="el" href="structPassenger_1_1PoolOptions.html#fdbe6d3418132ff3ca17427778e0948c">defaultGroup</a>=&quot;&quot;, long <a class="el" href="structPassenger_1_1PoolOptions.html#cbbea86958b42ffa7989680ed1587c70">frameworkSpawnerTimeout</a>=-1, long <a class="el" href="structPassenger_1_1PoolOptions.html#5a2f27a853e33c22da71430216d798cf">appSpawnerTimeout</a>=-1, const string &amp;<a class="el" href="structPassenger_1_1PoolOptions.html#85c99df1b3d74b47c73049e20f0a7192">baseURI</a>=&quot;/&quot;, unsigned long <a class="el" href="structPassenger_1_1PoolOptions.html#70251ed3cb3713cb26a0b166c6b015c0">maxRequests</a>=0, unsigned long <a class="el" href="structPassenger_1_1PoolOptions.html#9d887031bbee2ad75ed88c8533ce41c1">minProcesses</a>=0, bool <a class="el" href="structPassenger_1_1PoolOptions.html#b610e568a7b5d3bb27460d6e35952b7e">useGlobalQueue</a>=false, unsigned long <a class="el" href="structPassenger_1_1PoolOptions.html#eaf5a998b4a5da2246685c2dfb8a8c6d">statThrottleRate</a>=0, const string &amp;<a class="el" href="structPassenger_1_1PoolOptions.html#b0f889f70a3ed22f2423d110ddaf26f5">restartDir</a>=&quot;&quot;, Account::Rights <a class="el" href="structPassenger_1_1PoolOptions.html#45665fffc8a20ea60a3fcafaff8627ab">rights</a>=DEFAULT_BACKEND_ACCOUNT_RIGHTS, bool <a class="el" href="structPassenger_1_1PoolOptions.html#7ac23dee2503de627fe4a3ea346c3739">debugger</a>=false, const AnalyticsLogPtr &amp;<a class="el" href="structPassenger_1_1PoolOptions.html#ce54185a9981f103a036a7ac3e768612">log</a>=AnalyticsLogPtr())</td></tr>
44
-
45
- <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Creates a new <a class="el" href="structPassenger_1_1PoolOptions.html" title="This struct encapsulates information for ApplicationPool::get() and for SpawnManager::spawn()...">PoolOptions</a> object with the given values. <br></td></tr>
46
- <tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structPassenger_1_1PoolOptions.html#0caa024c33da2f68b5c79b41122397b3">PoolOptions</a> (const vector&lt; string &gt; &amp;vec, unsigned int startIndex=0, AnalyticsLoggerPtr analyticsLogger=AnalyticsLoggerPtr())</td></tr>
47
-
48
- <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Creates a new <a class="el" href="structPassenger_1_1PoolOptions.html" title="This struct encapsulates information for ApplicationPool::get() and for SpawnManager::spawn()...">PoolOptions</a> object from the given string vector. <a href="#0caa024c33da2f68b5c79b41122397b3"></a><br></td></tr>
49
- <tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structPassenger_1_1PoolOptions.html#437e077b0ab037f4e86680e9164a694e">toVector</a> (vector&lt; string &gt; &amp;vec, bool storeEnvVars=true) const </td></tr>
50
-
51
- <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Append the information in this <a class="el" href="structPassenger_1_1PoolOptions.html" title="This struct encapsulates information for ApplicationPool::get() and for SpawnManager::spawn()...">PoolOptions</a> object to the given string vector. <a href="#437e077b0ab037f4e86680e9164a694e"></a><br></td></tr>
52
- <tr><td class="memItemLeft" nowrap align="right" valign="top">string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structPassenger_1_1PoolOptions.html#43eb2294bff16bbcbafec569babca883">getAppGroupName</a> () const </td></tr>
53
-
54
- <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the app group name. <a href="#43eb2294bff16bbcbafec569babca883"></a><br></td></tr>
55
- <tr><td class="memItemLeft" nowrap align="right" valign="top">string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structPassenger_1_1PoolOptions.html#cb2df1a0b558e7fa457e46373c17b679">serializeEnvironmentVariables</a> () const </td></tr>
56
-
57
- <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Serializes the items in environmentVariables into a string, which can be used to create a SimpleStringListCreator object. <a href="#cb2df1a0b558e7fa457e46373c17b679"></a><br></td></tr>
58
- <tr><td colspan="2"><br><h2>Public Attributes</h2></td></tr>
59
- <tr><td class="memItemLeft" nowrap align="right" valign="top">string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structPassenger_1_1PoolOptions.html#822039d204b48d9ed49184646734acf3">appRoot</a></td></tr>
60
-
61
- <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The root directory of the application to spawn. <a href="#822039d204b48d9ed49184646734acf3"></a><br></td></tr>
62
- <tr><td class="memItemLeft" nowrap align="right" valign="top">string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structPassenger_1_1PoolOptions.html#dce57f30c4f33d8b55726d0eaa15addf">appGroupName</a></td></tr>
63
-
64
- <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">A name used by ApplicationPool to uniquely identify an application. <a href="#dce57f30c4f33d8b55726d0eaa15addf"></a><br></td></tr>
65
- <tr><td class="memItemLeft" nowrap align="right" valign="top">string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structPassenger_1_1PoolOptions.html#5e1c129ae0b8be350c7ed238eec8a8c9">appType</a></td></tr>
66
-
67
- <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The application type. <a href="#5e1c129ae0b8be350c7ed238eec8a8c9"></a><br></td></tr>
68
- <tr><td class="memItemLeft" nowrap align="right" valign="top">string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structPassenger_1_1PoolOptions.html#4324bb724859905f9991faa9b90aedbc">environment</a></td></tr>
69
-
70
- <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The RAILS_ENV/RACK_ENV environment that should be used. <a href="#4324bb724859905f9991faa9b90aedbc"></a><br></td></tr>
71
- <tr><td class="memItemLeft" nowrap align="right" valign="top">string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structPassenger_1_1PoolOptions.html#feb629e3ced79f5a2dbccc1beeeeab9e">spawnMethod</a></td></tr>
72
-
73
- <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Method with which application processes should be spawned. <a href="#feb629e3ced79f5a2dbccc1beeeeab9e"></a><br></td></tr>
74
- <tr><td class="memItemLeft" nowrap align="right" valign="top">string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structPassenger_1_1PoolOptions.html#7bb617271b0a61645b17b9815ebf300c">user</a></td></tr>
75
-
76
- <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">See overview. <a href="#7bb617271b0a61645b17b9815ebf300c"></a><br></td></tr>
77
- <tr><td class="memItemLeft" nowrap align="right" valign="top">string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structPassenger_1_1PoolOptions.html#6292899199727c513fd641d313c42372">group</a></td></tr>
78
-
79
- <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">See class overview. <a href="#6292899199727c513fd641d313c42372"></a><br></td></tr>
80
- <tr><td class="memItemLeft" nowrap align="right" valign="top">string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structPassenger_1_1PoolOptions.html#f9e15d356066ebd5f1454dca7937374f">defaultUser</a></td></tr>
81
-
82
- <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">See class overview. <a href="#f9e15d356066ebd5f1454dca7937374f"></a><br></td></tr>
83
- <tr><td class="memItemLeft" nowrap align="right" valign="top">string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structPassenger_1_1PoolOptions.html#fdbe6d3418132ff3ca17427778e0948c">defaultGroup</a></td></tr>
84
-
85
- <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">See class overview. <a href="#fdbe6d3418132ff3ca17427778e0948c"></a><br></td></tr>
86
- <tr><td class="memItemLeft" nowrap align="right" valign="top">long&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structPassenger_1_1PoolOptions.html#cbbea86958b42ffa7989680ed1587c70">frameworkSpawnerTimeout</a></td></tr>
87
-
88
- <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The idle timeout, in seconds, of framework spawners. <a href="#cbbea86958b42ffa7989680ed1587c70"></a><br></td></tr>
89
- <tr><td class="memItemLeft" nowrap align="right" valign="top">long&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structPassenger_1_1PoolOptions.html#5a2f27a853e33c22da71430216d798cf">appSpawnerTimeout</a></td></tr>
90
-
91
- <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The idle timeout, in seconds, of application spawners. <a href="#5a2f27a853e33c22da71430216d798cf"></a><br></td></tr>
92
- <tr><td class="memItemLeft" nowrap align="right" valign="top">StringListCreatorPtr&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structPassenger_1_1PoolOptions.html#aa4f5d4ae1534ada8613fbe497a38924">environmentVariables</a></td></tr>
93
-
94
- <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Environment variables which should be passed to the spawned application process. <a href="#aa4f5d4ae1534ada8613fbe497a38924"></a><br></td></tr>
95
- <tr><td class="memItemLeft" nowrap align="right" valign="top">string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structPassenger_1_1PoolOptions.html#85c99df1b3d74b47c73049e20f0a7192">baseURI</a></td></tr>
96
-
97
- <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The base URI on which the application runs. <a href="#85c99df1b3d74b47c73049e20f0a7192"></a><br></td></tr>
98
- <tr><td class="memItemLeft" nowrap align="right" valign="top">unsigned long&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structPassenger_1_1PoolOptions.html#70251ed3cb3713cb26a0b166c6b015c0">maxRequests</a></td></tr>
99
-
100
- <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The maximum number of requests that the spawned application may process before exiting. <a href="#70251ed3cb3713cb26a0b166c6b015c0"></a><br></td></tr>
101
- <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="9d887031bbee2ad75ed88c8533ce41c1"></a><!-- doxytag: member="Passenger::PoolOptions::minProcesses" ref="9d887031bbee2ad75ed88c8533ce41c1" args="" -->
102
- unsigned long&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structPassenger_1_1PoolOptions.html#9d887031bbee2ad75ed88c8533ce41c1">minProcesses</a></td></tr>
103
-
104
- <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The minimum number of processes for the current group that the application pool's cleaner thread should keep around. <br></td></tr>
105
- <tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structPassenger_1_1PoolOptions.html#b610e568a7b5d3bb27460d6e35952b7e">useGlobalQueue</a></td></tr>
106
-
107
- <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Whether to use a global queue instead of a per-backend process queue. <a href="#b610e568a7b5d3bb27460d6e35952b7e"></a><br></td></tr>
108
- <tr><td class="memItemLeft" nowrap align="right" valign="top">unsigned long&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structPassenger_1_1PoolOptions.html#eaf5a998b4a5da2246685c2dfb8a8c6d">statThrottleRate</a></td></tr>
109
-
110
- <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">A throttling rate for file stats. <a href="#eaf5a998b4a5da2246685c2dfb8a8c6d"></a><br></td></tr>
111
- <tr><td class="memItemLeft" nowrap align="right" valign="top">string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structPassenger_1_1PoolOptions.html#b0f889f70a3ed22f2423d110ddaf26f5">restartDir</a></td></tr>
112
-
113
- <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The directory which contains restart.txt and always_restart.txt. <a href="#b0f889f70a3ed22f2423d110ddaf26f5"></a><br></td></tr>
114
- <tr><td class="memItemLeft" nowrap align="right" valign="top">Account::Rights&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structPassenger_1_1PoolOptions.html#45665fffc8a20ea60a3fcafaff8627ab">rights</a></td></tr>
115
-
116
- <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Any rights that the spawned application process may have. <a href="#45665fffc8a20ea60a3fcafaff8627ab"></a><br></td></tr>
117
- <tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structPassenger_1_1PoolOptions.html#7ac23dee2503de627fe4a3ea346c3739">debugger</a></td></tr>
118
-
119
- <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Whether debugger support should be enabled. <a href="#7ac23dee2503de627fe4a3ea346c3739"></a><br></td></tr>
120
- <tr><td class="memItemLeft" nowrap align="right" valign="top">AnalyticsLogPtr&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structPassenger_1_1PoolOptions.html#ce54185a9981f103a036a7ac3e768612">log</a></td></tr>
121
-
122
- <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">An analytics log object to log things to. <a href="#ce54185a9981f103a036a7ac3e768612"></a><br></td></tr>
123
- <tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structPassenger_1_1PoolOptions.html#1709d96d9d5d59ce79c90434a45cb076">initiateSession</a></td></tr>
124
-
125
- <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Whether the session returned by ApplicationPool::Interface::get() should be automatically initiated. <a href="#1709d96d9d5d59ce79c90434a45cb076"></a><br></td></tr>
126
- <tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structPassenger_1_1PoolOptions.html#d3d545cee2806198797fc6b4197ff87b">printExceptions</a></td></tr>
127
-
128
- <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Whether application processes should print exceptions that occurred during application initialization. <a href="#d3d545cee2806198797fc6b4197ff87b"></a><br></td></tr>
32
+ <h1>Passenger::PoolOptions Struct Reference</h1><!-- doxytag: class="Passenger::PoolOptions" -->
33
+ <p>This struct encapsulates information for ApplicationPool::get() and for <a class="el" href="classPassenger_1_1SpawnManager.html#a88a94ba4d41dab492cb1dc8a0f998973" title="Spawn a new application process.">SpawnManager::spawn()</a>, such as which application is to be spawned.
34
+ <a href="#_details">More...</a></p>
35
+
36
+ <p><code>#include &lt;<a class="el" href="PoolOptions_8h_source.html">PoolOptions.h</a>&gt;</code></p>
37
+
38
+ <p><a href="structPassenger_1_1PoolOptions-members.html">List of all members.</a></p>
39
+ <table border="0" cellpadding="0" cellspacing="0">
40
+ <tr><td colspan="2"><h2>Public Member Functions</h2></td></tr>
41
+ <tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structPassenger_1_1PoolOptions.html#ab2b7c72144c108657e3ad4ac9f6e26f4">PoolOptions</a> ()</td></tr>
42
+ <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Creates a new <a class="el" href="structPassenger_1_1PoolOptions.html" title="This struct encapsulates information for ApplicationPool::get() and for SpawnManager::spawn()...">PoolOptions</a> object with the default values filled in. <a href="#ab2b7c72144c108657e3ad4ac9f6e26f4"></a><br/></td></tr>
43
+ <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a24eb0a0962f9a037d01841cd7dbca985"></a><!-- doxytag: member="Passenger::PoolOptions::PoolOptions" ref="a24eb0a0962f9a037d01841cd7dbca985" args="(const string &amp;appRoot, string appGroupName=&quot;&quot;, const string &amp;appType=&quot;rails&quot;, const string &amp;environment=&quot;production&quot;, const string &amp;spawnMethod=&quot;smart&#45;lv2&quot;, const string &amp;user=&quot;&quot;, const string &amp;group=&quot;&quot;, const string &amp;defaultUser=&quot;&quot;, const string &amp;defaultGroup=&quot;&quot;, long frameworkSpawnerTimeout=&#45;1, long appSpawnerTimeout=&#45;1, const string &amp;baseURI=&quot;/&quot;, unsigned long maxRequests=0, unsigned long minProcesses=0, bool useGlobalQueue=false, bool showVersionInHeader=true, unsigned long statThrottleRate=0, const string &amp;restartDir=&quot;&quot;, Account::Rights rights=DEFAULT_BACKEND_ACCOUNT_RIGHTS, bool debugger=false, bool analytics=false, const AnalyticsLogPtr &amp;log=AnalyticsLogPtr())" -->
44
+ &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structPassenger_1_1PoolOptions.html#a24eb0a0962f9a037d01841cd7dbca985">PoolOptions</a> (const string &amp;<a class="el" href="structPassenger_1_1PoolOptions.html#a822039d204b48d9ed49184646734acf3">appRoot</a>, string <a class="el" href="structPassenger_1_1PoolOptions.html#adce57f30c4f33d8b55726d0eaa15addf">appGroupName</a>=&quot;&quot;, const string &amp;<a class="el" href="structPassenger_1_1PoolOptions.html#a5e1c129ae0b8be350c7ed238eec8a8c9">appType</a>=&quot;rails&quot;, const string &amp;<a class="el" href="structPassenger_1_1PoolOptions.html#a4324bb724859905f9991faa9b90aedbc">environment</a>=&quot;production&quot;, const string &amp;<a class="el" href="structPassenger_1_1PoolOptions.html#afeb629e3ced79f5a2dbccc1beeeeab9e">spawnMethod</a>=&quot;smart-lv2&quot;, const string &amp;<a class="el" href="structPassenger_1_1PoolOptions.html#a7bb617271b0a61645b17b9815ebf300c">user</a>=&quot;&quot;, const string &amp;<a class="el" href="structPassenger_1_1PoolOptions.html#a6292899199727c513fd641d313c42372">group</a>=&quot;&quot;, const string &amp;<a class="el" href="structPassenger_1_1PoolOptions.html#af9e15d356066ebd5f1454dca7937374f">defaultUser</a>=&quot;&quot;, const string &amp;<a class="el" href="structPassenger_1_1PoolOptions.html#afdbe6d3418132ff3ca17427778e0948c">defaultGroup</a>=&quot;&quot;, long <a class="el" href="structPassenger_1_1PoolOptions.html#acbbea86958b42ffa7989680ed1587c70">frameworkSpawnerTimeout</a>=-1, long <a class="el" href="structPassenger_1_1PoolOptions.html#a5a2f27a853e33c22da71430216d798cf">appSpawnerTimeout</a>=-1, const string &amp;<a class="el" href="structPassenger_1_1PoolOptions.html#a85c99df1b3d74b47c73049e20f0a7192">baseURI</a>=&quot;/&quot;, unsigned long <a class="el" href="structPassenger_1_1PoolOptions.html#a70251ed3cb3713cb26a0b166c6b015c0">maxRequests</a>=0, unsigned long <a class="el" href="structPassenger_1_1PoolOptions.html#a9d887031bbee2ad75ed88c8533ce41c1">minProcesses</a>=0, bool <a class="el" href="structPassenger_1_1PoolOptions.html#ab610e568a7b5d3bb27460d6e35952b7e">useGlobalQueue</a>=false, bool <a class="el" href="structPassenger_1_1PoolOptions.html#a6f4ab7d4f2da75f31f49ca761d57734a">showVersionInHeader</a>=true, unsigned long <a class="el" href="structPassenger_1_1PoolOptions.html#aeaf5a998b4a5da2246685c2dfb8a8c6d">statThrottleRate</a>=0, const string &amp;<a class="el" href="structPassenger_1_1PoolOptions.html#ab0f889f70a3ed22f2423d110ddaf26f5">restartDir</a>=&quot;&quot;, Account::Rights <a class="el" href="structPassenger_1_1PoolOptions.html#a45665fffc8a20ea60a3fcafaff8627ab">rights</a>=DEFAULT_BACKEND_ACCOUNT_RIGHTS, bool <a class="el" href="structPassenger_1_1PoolOptions.html#a7ac23dee2503de627fe4a3ea346c3739">debugger</a>=false, bool <a class="el" href="structPassenger_1_1PoolOptions.html#affc1fe858b06111964f9b091e7354a4c">analytics</a>=false, const AnalyticsLogPtr &amp;<a class="el" href="structPassenger_1_1PoolOptions.html#ace54185a9981f103a036a7ac3e768612">log</a>=AnalyticsLogPtr())</td></tr>
45
+ <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Creates a new <a class="el" href="structPassenger_1_1PoolOptions.html" title="This struct encapsulates information for ApplicationPool::get() and for SpawnManager::spawn()...">PoolOptions</a> object with the given values. <br/></td></tr>
46
+ <tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structPassenger_1_1PoolOptions.html#a0caa024c33da2f68b5c79b41122397b3">PoolOptions</a> (const vector&lt; string &gt; &amp;vec, unsigned int startIndex=0, AnalyticsLoggerPtr analyticsLogger=AnalyticsLoggerPtr())</td></tr>
47
+ <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Creates a new <a class="el" href="structPassenger_1_1PoolOptions.html" title="This struct encapsulates information for ApplicationPool::get() and for SpawnManager::spawn()...">PoolOptions</a> object from the given string vector. <a href="#a0caa024c33da2f68b5c79b41122397b3"></a><br/></td></tr>
48
+ <tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structPassenger_1_1PoolOptions.html#a437e077b0ab037f4e86680e9164a694e">toVector</a> (vector&lt; string &gt; &amp;vec, bool storeEnvVars=true) const </td></tr>
49
+ <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Append the information in this <a class="el" href="structPassenger_1_1PoolOptions.html" title="This struct encapsulates information for ApplicationPool::get() and for SpawnManager::spawn()...">PoolOptions</a> object to the given string vector. <a href="#a437e077b0ab037f4e86680e9164a694e"></a><br/></td></tr>
50
+ <tr><td class="memItemLeft" align="right" valign="top">string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structPassenger_1_1PoolOptions.html#a43eb2294bff16bbcbafec569babca883">getAppGroupName</a> () const </td></tr>
51
+ <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the app group name. <a href="#a43eb2294bff16bbcbafec569babca883"></a><br/></td></tr>
52
+ <tr><td class="memItemLeft" align="right" valign="top">string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structPassenger_1_1PoolOptions.html#acb2df1a0b558e7fa457e46373c17b679">serializeEnvironmentVariables</a> () const </td></tr>
53
+ <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Serializes the items in environmentVariables into a string, which can be used to create a SimpleStringListCreator object. <a href="#acb2df1a0b558e7fa457e46373c17b679"></a><br/></td></tr>
54
+ <tr><td colspan="2"><h2>Public Attributes</h2></td></tr>
55
+ <tr><td class="memItemLeft" align="right" valign="top">string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structPassenger_1_1PoolOptions.html#a822039d204b48d9ed49184646734acf3">appRoot</a></td></tr>
56
+ <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The root directory of the application to spawn. <a href="#a822039d204b48d9ed49184646734acf3"></a><br/></td></tr>
57
+ <tr><td class="memItemLeft" align="right" valign="top">string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structPassenger_1_1PoolOptions.html#adce57f30c4f33d8b55726d0eaa15addf">appGroupName</a></td></tr>
58
+ <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">A name used by ApplicationPool to uniquely identify an application. <a href="#adce57f30c4f33d8b55726d0eaa15addf"></a><br/></td></tr>
59
+ <tr><td class="memItemLeft" align="right" valign="top">string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structPassenger_1_1PoolOptions.html#a5e1c129ae0b8be350c7ed238eec8a8c9">appType</a></td></tr>
60
+ <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The application type. <a href="#a5e1c129ae0b8be350c7ed238eec8a8c9"></a><br/></td></tr>
61
+ <tr><td class="memItemLeft" align="right" valign="top">string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structPassenger_1_1PoolOptions.html#a4324bb724859905f9991faa9b90aedbc">environment</a></td></tr>
62
+ <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The RAILS_ENV/RACK_ENV environment that should be used. <a href="#a4324bb724859905f9991faa9b90aedbc"></a><br/></td></tr>
63
+ <tr><td class="memItemLeft" align="right" valign="top">string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structPassenger_1_1PoolOptions.html#afeb629e3ced79f5a2dbccc1beeeeab9e">spawnMethod</a></td></tr>
64
+ <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Method with which application processes should be spawned. <a href="#afeb629e3ced79f5a2dbccc1beeeeab9e"></a><br/></td></tr>
65
+ <tr><td class="memItemLeft" align="right" valign="top">string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structPassenger_1_1PoolOptions.html#a7bb617271b0a61645b17b9815ebf300c">user</a></td></tr>
66
+ <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">See overview. <a href="#a7bb617271b0a61645b17b9815ebf300c"></a><br/></td></tr>
67
+ <tr><td class="memItemLeft" align="right" valign="top">string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structPassenger_1_1PoolOptions.html#a6292899199727c513fd641d313c42372">group</a></td></tr>
68
+ <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">See class overview. <a href="#a6292899199727c513fd641d313c42372"></a><br/></td></tr>
69
+ <tr><td class="memItemLeft" align="right" valign="top">string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structPassenger_1_1PoolOptions.html#af9e15d356066ebd5f1454dca7937374f">defaultUser</a></td></tr>
70
+ <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">See class overview. <a href="#af9e15d356066ebd5f1454dca7937374f"></a><br/></td></tr>
71
+ <tr><td class="memItemLeft" align="right" valign="top">string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structPassenger_1_1PoolOptions.html#afdbe6d3418132ff3ca17427778e0948c">defaultGroup</a></td></tr>
72
+ <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">See class overview. <a href="#afdbe6d3418132ff3ca17427778e0948c"></a><br/></td></tr>
73
+ <tr><td class="memItemLeft" align="right" valign="top">long&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structPassenger_1_1PoolOptions.html#acbbea86958b42ffa7989680ed1587c70">frameworkSpawnerTimeout</a></td></tr>
74
+ <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The idle timeout, in seconds, of framework spawners. <a href="#acbbea86958b42ffa7989680ed1587c70"></a><br/></td></tr>
75
+ <tr><td class="memItemLeft" align="right" valign="top">long&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structPassenger_1_1PoolOptions.html#a5a2f27a853e33c22da71430216d798cf">appSpawnerTimeout</a></td></tr>
76
+ <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The idle timeout, in seconds, of application spawners. <a href="#a5a2f27a853e33c22da71430216d798cf"></a><br/></td></tr>
77
+ <tr><td class="memItemLeft" align="right" valign="top">StringListCreatorPtr&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structPassenger_1_1PoolOptions.html#aaa4f5d4ae1534ada8613fbe497a38924">environmentVariables</a></td></tr>
78
+ <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Environment variables which should be passed to the spawned application process. <a href="#aaa4f5d4ae1534ada8613fbe497a38924"></a><br/></td></tr>
79
+ <tr><td class="memItemLeft" align="right" valign="top">string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structPassenger_1_1PoolOptions.html#a85c99df1b3d74b47c73049e20f0a7192">baseURI</a></td></tr>
80
+ <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The base URI on which the application runs. <a href="#a85c99df1b3d74b47c73049e20f0a7192"></a><br/></td></tr>
81
+ <tr><td class="memItemLeft" align="right" valign="top">unsigned long&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structPassenger_1_1PoolOptions.html#a70251ed3cb3713cb26a0b166c6b015c0">maxRequests</a></td></tr>
82
+ <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The maximum number of requests that the spawned application may process before exiting. <a href="#a70251ed3cb3713cb26a0b166c6b015c0"></a><br/></td></tr>
83
+ <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a9d887031bbee2ad75ed88c8533ce41c1"></a><!-- doxytag: member="Passenger::PoolOptions::minProcesses" ref="a9d887031bbee2ad75ed88c8533ce41c1" args="" -->
84
+ unsigned long&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structPassenger_1_1PoolOptions.html#a9d887031bbee2ad75ed88c8533ce41c1">minProcesses</a></td></tr>
85
+ <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The minimum number of processes for the current group that the application pool's cleaner thread should keep around. <br/></td></tr>
86
+ <tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structPassenger_1_1PoolOptions.html#ab610e568a7b5d3bb27460d6e35952b7e">useGlobalQueue</a></td></tr>
87
+ <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Whether to use a global queue instead of a per-backend process queue. <a href="#ab610e568a7b5d3bb27460d6e35952b7e"></a><br/></td></tr>
88
+ <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a6f4ab7d4f2da75f31f49ca761d57734a"></a><!-- doxytag: member="Passenger::PoolOptions::showVersionInHeader" ref="a6f4ab7d4f2da75f31f49ca761d57734a" args="" -->
89
+ bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structPassenger_1_1PoolOptions.html#a6f4ab7d4f2da75f31f49ca761d57734a">showVersionInHeader</a></td></tr>
90
+ <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Whether to show the Phusion <a class="el" href="namespacePassenger.html" title="Common code for all agents.">Passenger</a> version number in the X-Powered-By header. <br/></td></tr>
91
+ <tr><td class="memItemLeft" align="right" valign="top">unsigned long&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structPassenger_1_1PoolOptions.html#aeaf5a998b4a5da2246685c2dfb8a8c6d">statThrottleRate</a></td></tr>
92
+ <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">A throttling rate for file stats. <a href="#aeaf5a998b4a5da2246685c2dfb8a8c6d"></a><br/></td></tr>
93
+ <tr><td class="memItemLeft" align="right" valign="top">string&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structPassenger_1_1PoolOptions.html#ab0f889f70a3ed22f2423d110ddaf26f5">restartDir</a></td></tr>
94
+ <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The directory which contains restart.txt and always_restart.txt. <a href="#ab0f889f70a3ed22f2423d110ddaf26f5"></a><br/></td></tr>
95
+ <tr><td class="memItemLeft" align="right" valign="top">Account::Rights&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structPassenger_1_1PoolOptions.html#a45665fffc8a20ea60a3fcafaff8627ab">rights</a></td></tr>
96
+ <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Any rights that the spawned application process may have. <a href="#a45665fffc8a20ea60a3fcafaff8627ab"></a><br/></td></tr>
97
+ <tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structPassenger_1_1PoolOptions.html#a7ac23dee2503de627fe4a3ea346c3739">debugger</a></td></tr>
98
+ <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Whether debugger support should be enabled. <a href="#a7ac23dee2503de627fe4a3ea346c3739"></a><br/></td></tr>
99
+ <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="affc1fe858b06111964f9b091e7354a4c"></a><!-- doxytag: member="Passenger::PoolOptions::analytics" ref="affc1fe858b06111964f9b091e7354a4c" args="" -->
100
+ bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structPassenger_1_1PoolOptions.html#affc1fe858b06111964f9b091e7354a4c">analytics</a></td></tr>
101
+ <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">In case an app process needs to be spawned, whether analytics logging should be enabled. <br/></td></tr>
102
+ <tr><td class="memItemLeft" align="right" valign="top">AnalyticsLogPtr&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structPassenger_1_1PoolOptions.html#ace54185a9981f103a036a7ac3e768612">log</a></td></tr>
103
+ <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">An analytics log object to log things to. <a href="#ace54185a9981f103a036a7ac3e768612"></a><br/></td></tr>
104
+ <tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structPassenger_1_1PoolOptions.html#a1709d96d9d5d59ce79c90434a45cb076">initiateSession</a></td></tr>
105
+ <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Whether the session returned by ApplicationPool::Interface::get() should be automatically initiated. <a href="#a1709d96d9d5d59ce79c90434a45cb076"></a><br/></td></tr>
106
+ <tr><td class="memItemLeft" align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structPassenger_1_1PoolOptions.html#ad3d545cee2806198797fc6b4197ff87b">printExceptions</a></td></tr>
107
+ <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Whether application processes should print exceptions that occurred during application initialization. <a href="#ad3d545cee2806198797fc6b4197ff87b"></a><br/></td></tr>
129
108
  </table>
130
- <hr><a name="_details"></a><h2>Detailed Description</h2>
131
- This struct encapsulates information for ApplicationPool::get() and for <a class="el" href="classPassenger_1_1SpawnManager.html#88a94ba4d41dab492cb1dc8a0f998973" title="Spawn a new application process.">SpawnManager::spawn()</a>, such as which application is to be spawned.
132
- <p>
109
+ <hr/><a name="_details"></a><h2>Detailed Description</h2>
110
+ <p>This struct encapsulates information for ApplicationPool::get() and for <a class="el" href="classPassenger_1_1SpawnManager.html#a88a94ba4d41dab492cb1dc8a0f998973" title="Spawn a new application process.">SpawnManager::spawn()</a>, such as which application is to be spawned. </p>
133
111
  <h2>Privilege lowering support</h2>
134
- <p>
135
- If <em>user</em> is given and isn't the empty string, then the application process will run as the given username. Otherwise, the owner of the application's startup file (e.g. config/environment.rb or config.ru) will be used.<p>
136
- If <em>group</em> is given and isn't the empty string, then the application process will run as the given group name. If it's set to the special value "!STARTUP_FILE!", then the startup file's group will be used. Otherwise, the primary group of the user that the application process will run as, will be used as group.<p>
137
- If the user or group that the application process attempts to switch to doesn't exist, then <em>default_user</em> and <em>default_group</em>, respectively, will be used.<p>
138
- Phusion <a class="el" href="namespacePassenger.html" title="This file provides a bunch of classes for reading and writing messages in the MessageChannel...">Passenger</a> will attempt to avoid running the application process as root: if <em>user</em> or <em>group</em> is set to the root user or the root group, or if the startup file is owned by root, then <em>default_user</em> and <em>default_group</em> will be used instead.<p>
139
- All this only happen if Phusion <a class="el" href="namespacePassenger.html" title="This file provides a bunch of classes for reading and writing messages in the MessageChannel...">Passenger</a> has root privileges. If not, then these options have no effect. <hr><h2>Constructor &amp; Destructor Documentation</h2>
140
- <a class="anchor" name="b2b7c72144c108657e3ad4ac9f6e26f4"></a><!-- doxytag: member="Passenger::PoolOptions::PoolOptions" ref="b2b7c72144c108657e3ad4ac9f6e26f4" args="()" -->
112
+ <p>If <em>user</em> is given and isn't the empty string, then the application process will run as the given username. Otherwise, the owner of the application's startup file (e.g. config/environment.rb or config.ru) will be used.</p>
113
+ <p>If <em>group</em> is given and isn't the empty string, then the application process will run as the given group name. If it's set to the special value "!STARTUP_FILE!", then the startup file's group will be used. Otherwise, the primary group of the user that the application process will run as, will be used as group.</p>
114
+ <p>If the user or group that the application process attempts to switch to doesn't exist, then <em>default_user</em> and <em>default_group</em>, respectively, will be used.</p>
115
+ <p>Phusion <a class="el" href="namespacePassenger.html" title="Common code for all agents.">Passenger</a> will attempt to avoid running the application process as root: if <em>user</em> or <em>group</em> is set to the root user or the root group, or if the startup file is owned by root, then <em>default_user</em> and <em>default_group</em> will be used instead.</p>
116
+ <p>All this only happen if Phusion <a class="el" href="namespacePassenger.html" title="Common code for all agents.">Passenger</a> has root privileges. If not, then these options have no effect. </p>
117
+ <hr/><h2>Constructor &amp; Destructor Documentation</h2>
118
+ <a class="anchor" id="ab2b7c72144c108657e3ad4ac9f6e26f4"></a><!-- doxytag: member="Passenger::PoolOptions::PoolOptions" ref="ab2b7c72144c108657e3ad4ac9f6e26f4" args="()" -->
141
119
  <div class="memitem">
142
120
  <div class="memproto">
143
121
  <table class="memname">
144
122
  <tr>
145
- <td class="memname">Passenger::PoolOptions::PoolOptions </td>
123
+ <td class="memname">Passenger::PoolOptions::PoolOptions </td>
146
124
  <td>(</td>
147
- <td class="paramname"> </td>
125
+ <td class="paramname"></td>
148
126
  <td>&nbsp;)&nbsp;</td>
149
127
  <td><code> [inline]</code></td>
150
128
  </tr>
@@ -152,18 +130,17 @@ All this only happen if Phusion <a class="el" href="namespacePassenger.html" tit
152
130
  </div>
153
131
  <div class="memdoc">
154
132
 
155
- <p>
156
- Creates a new <a class="el" href="structPassenger_1_1PoolOptions.html" title="This struct encapsulates information for ApplicationPool::get() and for SpawnManager::spawn()...">PoolOptions</a> object with the default values filled in.
157
- <p>
158
- One must still set appRoot manually, after having used this constructor.
133
+ <p>Creates a new <a class="el" href="structPassenger_1_1PoolOptions.html" title="This struct encapsulates information for ApplicationPool::get() and for SpawnManager::spawn()...">PoolOptions</a> object with the default values filled in. </p>
134
+ <p>One must still set appRoot manually, after having used this constructor. </p>
135
+
136
+ </div>
159
137
  </div>
160
- </div><p>
161
- <a class="anchor" name="0caa024c33da2f68b5c79b41122397b3"></a><!-- doxytag: member="Passenger::PoolOptions::PoolOptions" ref="0caa024c33da2f68b5c79b41122397b3" args="(const vector&lt; string &gt; &amp;vec, unsigned int startIndex=0, AnalyticsLoggerPtr analyticsLogger=AnalyticsLoggerPtr())" -->
138
+ <a class="anchor" id="a0caa024c33da2f68b5c79b41122397b3"></a><!-- doxytag: member="Passenger::PoolOptions::PoolOptions" ref="a0caa024c33da2f68b5c79b41122397b3" args="(const vector&lt; string &gt; &amp;vec, unsigned int startIndex=0, AnalyticsLoggerPtr analyticsLogger=AnalyticsLoggerPtr())" -->
162
139
  <div class="memitem">
163
140
  <div class="memproto">
164
141
  <table class="memname">
165
142
  <tr>
166
- <td class="memname">Passenger::PoolOptions::PoolOptions </td>
143
+ <td class="memname">Passenger::PoolOptions::PoolOptions </td>
167
144
  <td>(</td>
168
145
  <td class="paramtype">const vector&lt; string &gt; &amp;&nbsp;</td>
169
146
  <td class="paramname"> <em>vec</em>, </td>
@@ -189,38 +166,37 @@ One must still set appRoot manually, after having used this constructor.
189
166
  </div>
190
167
  <div class="memdoc">
191
168
 
192
- <p>
193
- Creates a new <a class="el" href="structPassenger_1_1PoolOptions.html" title="This struct encapsulates information for ApplicationPool::get() and for SpawnManager::spawn()...">PoolOptions</a> object from the given string vector.
194
- <p>
195
- This vector contains information that's written to by <a class="el" href="structPassenger_1_1PoolOptions.html#437e077b0ab037f4e86680e9164a694e" title="Append the information in this PoolOptions object to the given string vector.">toVector()</a>.<p>
196
- For example: <div class="fragment"><pre class="fragment"> <a class="code" href="structPassenger_1_1PoolOptions.html#b2b7c72144c108657e3ad4ac9f6e26f4" title="Creates a new PoolOptions object with the default values filled in.">PoolOptions</a> options(...);
169
+ <p>Creates a new <a class="el" href="structPassenger_1_1PoolOptions.html" title="This struct encapsulates information for ApplicationPool::get() and for SpawnManager::spawn()...">PoolOptions</a> object from the given string vector. </p>
170
+ <p>This vector contains information that's written to by <a class="el" href="structPassenger_1_1PoolOptions.html#a437e077b0ab037f4e86680e9164a694e" title="Append the information in this PoolOptions object to the given string vector.">toVector()</a>.</p>
171
+ <p>For example: </p>
172
+ <div class="fragment"><pre class="fragment"> <a class="code" href="structPassenger_1_1PoolOptions.html#ab2b7c72144c108657e3ad4ac9f6e26f4" title="Creates a new PoolOptions object with the default values filled in.">PoolOptions</a> options(...);
197
173
  vector&lt;string&gt; vec;
198
174
 
199
- vec.push_back(<span class="stringliteral">"my"</span>);
200
- vec.push_back(<span class="stringliteral">"data"</span>);
175
+ vec.push_back(<span class="stringliteral">&quot;my&quot;</span>);
176
+ vec.push_back(<span class="stringliteral">&quot;data&quot;</span>);
201
177
  options.toVector(vec); <span class="comment">// PoolOptions information will start at index 2.</span>
202
178
 
203
- <a class="code" href="structPassenger_1_1PoolOptions.html#b2b7c72144c108657e3ad4ac9f6e26f4" title="Creates a new PoolOptions object with the default values filled in.">PoolOptions</a> copy(vec, 2);
204
- </pre></div><p>
205
- <dl compact><dt><b>Parameters:</b></dt><dd>
179
+ <a class="code" href="structPassenger_1_1PoolOptions.html#ab2b7c72144c108657e3ad4ac9f6e26f4" title="Creates a new PoolOptions object with the default values filled in.">PoolOptions</a> copy(vec, 2);
180
+ </pre></div><dl><dt><b>Parameters:</b></dt><dd>
206
181
  <table border="0" cellspacing="2" cellpadding="0">
207
182
  <tr><td valign="top"></td><td valign="top"><em>vec</em>&nbsp;</td><td>The vector containing spawn options information. </td></tr>
208
183
  <tr><td valign="top"></td><td valign="top"><em>startIndex</em>&nbsp;</td><td>The index in vec at which the information starts. </td></tr>
209
184
  <tr><td valign="top"></td><td valign="top"><em>analyticsLogger</em>&nbsp;</td><td>If given, and the vector contains logging information, then the 'log' member will be constructed using this logger. </td></tr>
210
185
  </table>
186
+ </dd>
211
187
  </dl>
212
188
 
213
189
  </div>
214
- </div><p>
215
- <hr><h2>Member Function Documentation</h2>
216
- <a class="anchor" name="43eb2294bff16bbcbafec569babca883"></a><!-- doxytag: member="Passenger::PoolOptions::getAppGroupName" ref="43eb2294bff16bbcbafec569babca883" args="() const " -->
190
+ </div>
191
+ <hr/><h2>Member Function Documentation</h2>
192
+ <a class="anchor" id="a43eb2294bff16bbcbafec569babca883"></a><!-- doxytag: member="Passenger::PoolOptions::getAppGroupName" ref="a43eb2294bff16bbcbafec569babca883" args="() const " -->
217
193
  <div class="memitem">
218
194
  <div class="memproto">
219
195
  <table class="memname">
220
196
  <tr>
221
- <td class="memname">string Passenger::PoolOptions::getAppGroupName </td>
197
+ <td class="memname">string Passenger::PoolOptions::getAppGroupName </td>
222
198
  <td>(</td>
223
- <td class="paramname"> </td>
199
+ <td class="paramname"></td>
224
200
  <td>&nbsp;)&nbsp;</td>
225
201
  <td> const<code> [inline]</code></td>
226
202
  </tr>
@@ -228,20 +204,19 @@ For example: <div class="fragment"><pre class="fragment"> <a class="code" href
228
204
  </div>
229
205
  <div class="memdoc">
230
206
 
231
- <p>
232
- Returns the app group name.
233
- <p>
234
- If there is no explicitly set app group name then the app root is considered to be the app group name.
207
+ <p>Returns the app group name. </p>
208
+ <p>If there is no explicitly set app group name then the app root is considered to be the app group name. </p>
209
+
235
210
  </div>
236
- </div><p>
237
- <a class="anchor" name="cb2df1a0b558e7fa457e46373c17b679"></a><!-- doxytag: member="Passenger::PoolOptions::serializeEnvironmentVariables" ref="cb2df1a0b558e7fa457e46373c17b679" args="() const " -->
211
+ </div>
212
+ <a class="anchor" id="acb2df1a0b558e7fa457e46373c17b679"></a><!-- doxytag: member="Passenger::PoolOptions::serializeEnvironmentVariables" ref="acb2df1a0b558e7fa457e46373c17b679" args="() const " -->
238
213
  <div class="memitem">
239
214
  <div class="memproto">
240
215
  <table class="memname">
241
216
  <tr>
242
- <td class="memname">string Passenger::PoolOptions::serializeEnvironmentVariables </td>
217
+ <td class="memname">string Passenger::PoolOptions::serializeEnvironmentVariables </td>
243
218
  <td>(</td>
244
- <td class="paramname"> </td>
219
+ <td class="paramname"></td>
245
220
  <td>&nbsp;)&nbsp;</td>
246
221
  <td> const<code> [inline]</code></td>
247
222
  </tr>
@@ -249,23 +224,22 @@ If there is no explicitly set app group name then the app root is considered to
249
224
  </div>
250
225
  <div class="memdoc">
251
226
 
252
- <p>
253
- Serializes the items in environmentVariables into a string, which can be used to create a SimpleStringListCreator object.
254
- <p>
255
- <dl compact><dt><b>Exceptions:</b></dt><dd>
227
+ <p>Serializes the items in environmentVariables into a string, which can be used to create a SimpleStringListCreator object. </p>
228
+ <dl><dt><b>Exceptions:</b></dt><dd>
256
229
  <table border="0" cellspacing="2" cellpadding="0">
257
230
  <tr><td valign="top"></td><td valign="top"><em>Anything</em>&nbsp;</td><td>thrown by environmentVariables-&gt;getItems(). </td></tr>
258
231
  </table>
232
+ </dd>
259
233
  </dl>
260
234
 
261
235
  </div>
262
- </div><p>
263
- <a class="anchor" name="437e077b0ab037f4e86680e9164a694e"></a><!-- doxytag: member="Passenger::PoolOptions::toVector" ref="437e077b0ab037f4e86680e9164a694e" args="(vector&lt; string &gt; &amp;vec, bool storeEnvVars=true) const " -->
236
+ </div>
237
+ <a class="anchor" id="a437e077b0ab037f4e86680e9164a694e"></a><!-- doxytag: member="Passenger::PoolOptions::toVector" ref="a437e077b0ab037f4e86680e9164a694e" args="(vector&lt; string &gt; &amp;vec, bool storeEnvVars=true) const " -->
264
238
  <div class="memitem">
265
239
  <div class="memproto">
266
240
  <table class="memname">
267
241
  <tr>
268
- <td class="memname">void Passenger::PoolOptions::toVector </td>
242
+ <td class="memname">void Passenger::PoolOptions::toVector </td>
269
243
  <td>(</td>
270
244
  <td class="paramtype">vector&lt; string &gt; &amp;&nbsp;</td>
271
245
  <td class="paramname"> <em>vec</em>, </td>
@@ -285,413 +259,389 @@ Serializes the items in environmentVariables into a string, which can be used to
285
259
  </div>
286
260
  <div class="memdoc">
287
261
 
288
- <p>
289
- Append the information in this <a class="el" href="structPassenger_1_1PoolOptions.html" title="This struct encapsulates information for ApplicationPool::get() and for SpawnManager::spawn()...">PoolOptions</a> object to the given string vector.
290
- <p>
291
- The resulting array could, for example, be used as a message to be sent to the spawn server.<p>
292
- <dl compact><dt><b>Parameters:</b></dt><dd>
262
+ <p>Append the information in this <a class="el" href="structPassenger_1_1PoolOptions.html" title="This struct encapsulates information for ApplicationPool::get() and for SpawnManager::spawn()...">PoolOptions</a> object to the given string vector. </p>
263
+ <p>The resulting array could, for example, be used as a message to be sent to the spawn server.</p>
264
+ <dl><dt><b>Parameters:</b></dt><dd>
293
265
  <table border="0" cellspacing="2" cellpadding="0">
294
266
  <tr><td valign="top"></td><td valign="top"><em>vec</em>&nbsp;</td><td>The vector to store the information in. </td></tr>
295
267
  <tr><td valign="top"></td><td valign="top"><em>storeEnvVars</em>&nbsp;</td><td>Whether to store environment variable information into vec as well. </td></tr>
296
268
  </table>
269
+ </dd>
297
270
  </dl>
298
- <dl compact><dt><b>Exceptions:</b></dt><dd>
271
+ <dl><dt><b>Exceptions:</b></dt><dd>
299
272
  <table border="0" cellspacing="2" cellpadding="0">
300
273
  <tr><td valign="top"></td><td valign="top"><em>Anything</em>&nbsp;</td><td>thrown by environmentVariables-&gt;getItems(). </td></tr>
301
274
  </table>
275
+ </dd>
302
276
  </dl>
303
277
 
304
278
  </div>
305
- </div><p>
306
- <hr><h2>Member Data Documentation</h2>
307
- <a class="anchor" name="dce57f30c4f33d8b55726d0eaa15addf"></a><!-- doxytag: member="Passenger::PoolOptions::appGroupName" ref="dce57f30c4f33d8b55726d0eaa15addf" args="" -->
279
+ </div>
280
+ <hr/><h2>Member Data Documentation</h2>
281
+ <a class="anchor" id="adce57f30c4f33d8b55726d0eaa15addf"></a><!-- doxytag: member="Passenger::PoolOptions::appGroupName" ref="adce57f30c4f33d8b55726d0eaa15addf" args="" -->
308
282
  <div class="memitem">
309
283
  <div class="memproto">
310
284
  <table class="memname">
311
285
  <tr>
312
- <td class="memname">string <a class="el" href="structPassenger_1_1PoolOptions.html#dce57f30c4f33d8b55726d0eaa15addf">Passenger::PoolOptions::appGroupName</a> </td>
286
+ <td class="memname">string <a class="el" href="structPassenger_1_1PoolOptions.html#adce57f30c4f33d8b55726d0eaa15addf">Passenger::PoolOptions::appGroupName</a></td>
313
287
  </tr>
314
288
  </table>
315
289
  </div>
316
290
  <div class="memdoc">
317
291
 
318
- <p>
319
- A name used by ApplicationPool to uniquely identify an application.
320
- <p>
321
- If one tries to get() from the application pool with name "A", then get() again with name "B", then the latter will spawn a new application process, even if both get() requests have the same app root.<p>
322
- If left empty (the default), then the app root is used as the app group name.
292
+ <p>A name used by ApplicationPool to uniquely identify an application. </p>
293
+ <p>If one tries to get() from the application pool with name "A", then get() again with name "B", then the latter will spawn a new application process, even if both get() requests have the same app root.</p>
294
+ <p>If left empty (the default), then the app root is used as the app group name. </p>
295
+
323
296
  </div>
324
- </div><p>
325
- <a class="anchor" name="822039d204b48d9ed49184646734acf3"></a><!-- doxytag: member="Passenger::PoolOptions::appRoot" ref="822039d204b48d9ed49184646734acf3" args="" -->
297
+ </div>
298
+ <a class="anchor" id="a822039d204b48d9ed49184646734acf3"></a><!-- doxytag: member="Passenger::PoolOptions::appRoot" ref="a822039d204b48d9ed49184646734acf3" args="" -->
326
299
  <div class="memitem">
327
300
  <div class="memproto">
328
301
  <table class="memname">
329
302
  <tr>
330
- <td class="memname">string <a class="el" href="structPassenger_1_1PoolOptions.html#822039d204b48d9ed49184646734acf3">Passenger::PoolOptions::appRoot</a> </td>
303
+ <td class="memname">string <a class="el" href="structPassenger_1_1PoolOptions.html#a822039d204b48d9ed49184646734acf3">Passenger::PoolOptions::appRoot</a></td>
331
304
  </tr>
332
305
  </table>
333
306
  </div>
334
307
  <div class="memdoc">
335
308
 
336
- <p>
337
- The root directory of the application to spawn.
338
- <p>
339
- In case of a Ruby on Rails application, this is the folder that contains 'app/', 'public/', 'config/', etc. This must be a valid directory, but the path does not have to be absolute.
309
+ <p>The root directory of the application to spawn. </p>
310
+ <p>In case of a Ruby on Rails application, this is the folder that contains 'app/', 'public/', 'config/', etc. This must be a valid directory, but the path does not have to be absolute. </p>
311
+
312
+ </div>
340
313
  </div>
341
- </div><p>
342
- <a class="anchor" name="5a2f27a853e33c22da71430216d798cf"></a><!-- doxytag: member="Passenger::PoolOptions::appSpawnerTimeout" ref="5a2f27a853e33c22da71430216d798cf" args="" -->
314
+ <a class="anchor" id="a5a2f27a853e33c22da71430216d798cf"></a><!-- doxytag: member="Passenger::PoolOptions::appSpawnerTimeout" ref="a5a2f27a853e33c22da71430216d798cf" args="" -->
343
315
  <div class="memitem">
344
316
  <div class="memproto">
345
317
  <table class="memname">
346
318
  <tr>
347
- <td class="memname">long <a class="el" href="structPassenger_1_1PoolOptions.html#5a2f27a853e33c22da71430216d798cf">Passenger::PoolOptions::appSpawnerTimeout</a> </td>
319
+ <td class="memname">long <a class="el" href="structPassenger_1_1PoolOptions.html#a5a2f27a853e33c22da71430216d798cf">Passenger::PoolOptions::appSpawnerTimeout</a></td>
348
320
  </tr>
349
321
  </table>
350
322
  </div>
351
323
  <div class="memdoc">
352
324
 
353
- <p>
354
- The idle timeout, in seconds, of application spawners.
355
- <p>
356
- See the "Spawning methods explained" section of the users guide for information about application spawners.<p>
357
- A timeout of 0 means that the application spawner should never idle timeout. A timeout of -1 means that the default timeout value should be used.
325
+ <p>The idle timeout, in seconds, of application spawners. </p>
326
+ <p>See the "Spawning methods
327
+ explained" section of the users guide for information about application spawners.</p>
328
+ <p>A timeout of 0 means that the application spawner should never idle timeout. A timeout of -1 means that the default timeout value should be used. </p>
329
+
330
+ </div>
358
331
  </div>
359
- </div><p>
360
- <a class="anchor" name="5e1c129ae0b8be350c7ed238eec8a8c9"></a><!-- doxytag: member="Passenger::PoolOptions::appType" ref="5e1c129ae0b8be350c7ed238eec8a8c9" args="" -->
332
+ <a class="anchor" id="a5e1c129ae0b8be350c7ed238eec8a8c9"></a><!-- doxytag: member="Passenger::PoolOptions::appType" ref="a5e1c129ae0b8be350c7ed238eec8a8c9" args="" -->
361
333
  <div class="memitem">
362
334
  <div class="memproto">
363
335
  <table class="memname">
364
336
  <tr>
365
- <td class="memname">string <a class="el" href="structPassenger_1_1PoolOptions.html#5e1c129ae0b8be350c7ed238eec8a8c9">Passenger::PoolOptions::appType</a> </td>
337
+ <td class="memname">string <a class="el" href="structPassenger_1_1PoolOptions.html#a5e1c129ae0b8be350c7ed238eec8a8c9">Passenger::PoolOptions::appType</a></td>
366
338
  </tr>
367
339
  </table>
368
340
  </div>
369
341
  <div class="memdoc">
370
342
 
371
- <p>
372
- The application type.
373
- <p>
374
- Either "rails" (default), "rack" or "wsgi".
343
+ <p>The application type. </p>
344
+ <p>Either "rails" (default), "rack" or "wsgi". </p>
345
+
346
+ </div>
375
347
  </div>
376
- </div><p>
377
- <a class="anchor" name="85c99df1b3d74b47c73049e20f0a7192"></a><!-- doxytag: member="Passenger::PoolOptions::baseURI" ref="85c99df1b3d74b47c73049e20f0a7192" args="" -->
348
+ <a class="anchor" id="a85c99df1b3d74b47c73049e20f0a7192"></a><!-- doxytag: member="Passenger::PoolOptions::baseURI" ref="a85c99df1b3d74b47c73049e20f0a7192" args="" -->
378
349
  <div class="memitem">
379
350
  <div class="memproto">
380
351
  <table class="memname">
381
352
  <tr>
382
- <td class="memname">string <a class="el" href="structPassenger_1_1PoolOptions.html#85c99df1b3d74b47c73049e20f0a7192">Passenger::PoolOptions::baseURI</a> </td>
353
+ <td class="memname">string <a class="el" href="structPassenger_1_1PoolOptions.html#a85c99df1b3d74b47c73049e20f0a7192">Passenger::PoolOptions::baseURI</a></td>
383
354
  </tr>
384
355
  </table>
385
356
  </div>
386
357
  <div class="memdoc">
387
358
 
388
- <p>
389
- The base URI on which the application runs.
390
- <p>
391
- If the application is running on the root URI, then this value must be "/".<p>
392
- <dl class="invariant" compact><dt><b>Invariant:</b></dt><dd>baseURI != "" </dd></dl>
359
+ <p>The base URI on which the application runs. </p>
360
+ <p>If the application is running on the root URI, then this value must be "/".</p>
361
+ <dl class="invariant"><dt><b>Invariant:</b></dt><dd>baseURI != "" </dd></dl>
393
362
 
394
363
  </div>
395
- </div><p>
396
- <a class="anchor" name="7ac23dee2503de627fe4a3ea346c3739"></a><!-- doxytag: member="Passenger::PoolOptions::debugger" ref="7ac23dee2503de627fe4a3ea346c3739" args="" -->
364
+ </div>
365
+ <a class="anchor" id="a7ac23dee2503de627fe4a3ea346c3739"></a><!-- doxytag: member="Passenger::PoolOptions::debugger" ref="a7ac23dee2503de627fe4a3ea346c3739" args="" -->
397
366
  <div class="memitem">
398
367
  <div class="memproto">
399
368
  <table class="memname">
400
369
  <tr>
401
- <td class="memname">bool <a class="el" href="structPassenger_1_1PoolOptions.html#7ac23dee2503de627fe4a3ea346c3739">Passenger::PoolOptions::debugger</a> </td>
370
+ <td class="memname">bool <a class="el" href="structPassenger_1_1PoolOptions.html#a7ac23dee2503de627fe4a3ea346c3739">Passenger::PoolOptions::debugger</a></td>
402
371
  </tr>
403
372
  </table>
404
373
  </div>
405
374
  <div class="memdoc">
406
375
 
407
- <p>
408
- Whether debugger support should be enabled.
409
- <p>
376
+ <p>Whether debugger support should be enabled. </p>
410
377
 
411
378
  </div>
412
- </div><p>
413
- <a class="anchor" name="fdbe6d3418132ff3ca17427778e0948c"></a><!-- doxytag: member="Passenger::PoolOptions::defaultGroup" ref="fdbe6d3418132ff3ca17427778e0948c" args="" -->
379
+ </div>
380
+ <a class="anchor" id="afdbe6d3418132ff3ca17427778e0948c"></a><!-- doxytag: member="Passenger::PoolOptions::defaultGroup" ref="afdbe6d3418132ff3ca17427778e0948c" args="" -->
414
381
  <div class="memitem">
415
382
  <div class="memproto">
416
383
  <table class="memname">
417
384
  <tr>
418
- <td class="memname">string <a class="el" href="structPassenger_1_1PoolOptions.html#fdbe6d3418132ff3ca17427778e0948c">Passenger::PoolOptions::defaultGroup</a> </td>
385
+ <td class="memname">string <a class="el" href="structPassenger_1_1PoolOptions.html#afdbe6d3418132ff3ca17427778e0948c">Passenger::PoolOptions::defaultGroup</a></td>
419
386
  </tr>
420
387
  </table>
421
388
  </div>
422
389
  <div class="memdoc">
423
390
 
424
- <p>
425
- See class overview.
426
- <p>
427
- Defaults to the defaultUser's primary group.
391
+ <p>See class overview. </p>
392
+ <p>Defaults to the defaultUser's primary group. </p>
393
+
428
394
  </div>
429
- </div><p>
430
- <a class="anchor" name="f9e15d356066ebd5f1454dca7937374f"></a><!-- doxytag: member="Passenger::PoolOptions::defaultUser" ref="f9e15d356066ebd5f1454dca7937374f" args="" -->
395
+ </div>
396
+ <a class="anchor" id="af9e15d356066ebd5f1454dca7937374f"></a><!-- doxytag: member="Passenger::PoolOptions::defaultUser" ref="af9e15d356066ebd5f1454dca7937374f" args="" -->
431
397
  <div class="memitem">
432
398
  <div class="memproto">
433
399
  <table class="memname">
434
400
  <tr>
435
- <td class="memname">string <a class="el" href="structPassenger_1_1PoolOptions.html#f9e15d356066ebd5f1454dca7937374f">Passenger::PoolOptions::defaultUser</a> </td>
401
+ <td class="memname">string <a class="el" href="structPassenger_1_1PoolOptions.html#af9e15d356066ebd5f1454dca7937374f">Passenger::PoolOptions::defaultUser</a></td>
436
402
  </tr>
437
403
  </table>
438
404
  </div>
439
405
  <div class="memdoc">
440
406
 
441
- <p>
442
- See class overview.
443
- <p>
444
- Defaults to "nobody".
407
+ <p>See class overview. </p>
408
+ <p>Defaults to "nobody". </p>
409
+
410
+ </div>
445
411
  </div>
446
- </div><p>
447
- <a class="anchor" name="4324bb724859905f9991faa9b90aedbc"></a><!-- doxytag: member="Passenger::PoolOptions::environment" ref="4324bb724859905f9991faa9b90aedbc" args="" -->
412
+ <a class="anchor" id="a4324bb724859905f9991faa9b90aedbc"></a><!-- doxytag: member="Passenger::PoolOptions::environment" ref="a4324bb724859905f9991faa9b90aedbc" args="" -->
448
413
  <div class="memitem">
449
414
  <div class="memproto">
450
415
  <table class="memname">
451
416
  <tr>
452
- <td class="memname">string <a class="el" href="structPassenger_1_1PoolOptions.html#4324bb724859905f9991faa9b90aedbc">Passenger::PoolOptions::environment</a> </td>
417
+ <td class="memname">string <a class="el" href="structPassenger_1_1PoolOptions.html#a4324bb724859905f9991faa9b90aedbc">Passenger::PoolOptions::environment</a></td>
453
418
  </tr>
454
419
  </table>
455
420
  </div>
456
421
  <div class="memdoc">
457
422
 
458
- <p>
459
- The RAILS_ENV/RACK_ENV environment that should be used.
460
- <p>
461
- May not be an empty string. The default is "production".
423
+ <p>The RAILS_ENV/RACK_ENV environment that should be used. </p>
424
+ <p>May not be an empty string. The default is "production". </p>
425
+
426
+ </div>
462
427
  </div>
463
- </div><p>
464
- <a class="anchor" name="aa4f5d4ae1534ada8613fbe497a38924"></a><!-- doxytag: member="Passenger::PoolOptions::environmentVariables" ref="aa4f5d4ae1534ada8613fbe497a38924" args="" -->
428
+ <a class="anchor" id="aaa4f5d4ae1534ada8613fbe497a38924"></a><!-- doxytag: member="Passenger::PoolOptions::environmentVariables" ref="aaa4f5d4ae1534ada8613fbe497a38924" args="" -->
465
429
  <div class="memitem">
466
430
  <div class="memproto">
467
431
  <table class="memname">
468
432
  <tr>
469
- <td class="memname">StringListCreatorPtr <a class="el" href="structPassenger_1_1PoolOptions.html#aa4f5d4ae1534ada8613fbe497a38924">Passenger::PoolOptions::environmentVariables</a> </td>
433
+ <td class="memname">StringListCreatorPtr <a class="el" href="structPassenger_1_1PoolOptions.html#aaa4f5d4ae1534ada8613fbe497a38924">Passenger::PoolOptions::environmentVariables</a></td>
470
434
  </tr>
471
435
  </table>
472
436
  </div>
473
437
  <div class="memdoc">
474
438
 
475
- <p>
476
- Environment variables which should be passed to the spawned application process.
477
- <p>
478
- If a new application process is started, then the getItems() method on this object will be called, which is to return environment variables that should be passed to the newly spawned backend process. Odd indices in the resulting array contain keys, even indices contain the value for the key in the previous index.<p>
479
- May be set to NULL.<p>
480
- <dl class="invariant" compact><dt><b>Invariant:</b></dt><dd>environmentVariables.size() is an even number. </dd></dl>
439
+ <p>Environment variables which should be passed to the spawned application process. </p>
440
+ <p>If a new application process is started, then the getItems() method on this object will be called, which is to return environment variables that should be passed to the newly spawned backend process. Odd indices in the resulting array contain keys, even indices contain the value for the key in the previous index.</p>
441
+ <p>May be set to NULL.</p>
442
+ <dl class="invariant"><dt><b>Invariant:</b></dt><dd>environmentVariables.size() is an even number. </dd></dl>
481
443
 
482
444
  </div>
483
- </div><p>
484
- <a class="anchor" name="cbbea86958b42ffa7989680ed1587c70"></a><!-- doxytag: member="Passenger::PoolOptions::frameworkSpawnerTimeout" ref="cbbea86958b42ffa7989680ed1587c70" args="" -->
445
+ </div>
446
+ <a class="anchor" id="acbbea86958b42ffa7989680ed1587c70"></a><!-- doxytag: member="Passenger::PoolOptions::frameworkSpawnerTimeout" ref="acbbea86958b42ffa7989680ed1587c70" args="" -->
485
447
  <div class="memitem">
486
448
  <div class="memproto">
487
449
  <table class="memname">
488
450
  <tr>
489
- <td class="memname">long <a class="el" href="structPassenger_1_1PoolOptions.html#cbbea86958b42ffa7989680ed1587c70">Passenger::PoolOptions::frameworkSpawnerTimeout</a> </td>
451
+ <td class="memname">long <a class="el" href="structPassenger_1_1PoolOptions.html#acbbea86958b42ffa7989680ed1587c70">Passenger::PoolOptions::frameworkSpawnerTimeout</a></td>
490
452
  </tr>
491
453
  </table>
492
454
  </div>
493
455
  <div class="memdoc">
494
456
 
495
- <p>
496
- The idle timeout, in seconds, of framework spawners.
497
- <p>
498
- See the "Spawning methods explained" section of the users guide for information about framework spawners.<p>
499
- A timeout of 0 means that the framework spawner should never idle timeout. A timeout of -1 means that the default timeout value should be used.
457
+ <p>The idle timeout, in seconds, of framework spawners. </p>
458
+ <p>See the "Spawning methods
459
+ explained" section of the users guide for information about framework spawners.</p>
460
+ <p>A timeout of 0 means that the framework spawner should never idle timeout. A timeout of -1 means that the default timeout value should be used. </p>
461
+
500
462
  </div>
501
- </div><p>
502
- <a class="anchor" name="6292899199727c513fd641d313c42372"></a><!-- doxytag: member="Passenger::PoolOptions::group" ref="6292899199727c513fd641d313c42372" args="" -->
463
+ </div>
464
+ <a class="anchor" id="a6292899199727c513fd641d313c42372"></a><!-- doxytag: member="Passenger::PoolOptions::group" ref="a6292899199727c513fd641d313c42372" args="" -->
503
465
  <div class="memitem">
504
466
  <div class="memproto">
505
467
  <table class="memname">
506
468
  <tr>
507
- <td class="memname">string <a class="el" href="structPassenger_1_1PoolOptions.html#6292899199727c513fd641d313c42372">Passenger::PoolOptions::group</a> </td>
469
+ <td class="memname">string <a class="el" href="structPassenger_1_1PoolOptions.html#a6292899199727c513fd641d313c42372">Passenger::PoolOptions::group</a></td>
508
470
  </tr>
509
471
  </table>
510
472
  </div>
511
473
  <div class="memdoc">
512
474
 
513
- <p>
514
- See class overview.
515
- <p>
475
+ <p>See class overview. </p>
516
476
 
517
477
  </div>
518
- </div><p>
519
- <a class="anchor" name="1709d96d9d5d59ce79c90434a45cb076"></a><!-- doxytag: member="Passenger::PoolOptions::initiateSession" ref="1709d96d9d5d59ce79c90434a45cb076" args="" -->
478
+ </div>
479
+ <a class="anchor" id="a1709d96d9d5d59ce79c90434a45cb076"></a><!-- doxytag: member="Passenger::PoolOptions::initiateSession" ref="a1709d96d9d5d59ce79c90434a45cb076" args="" -->
520
480
  <div class="memitem">
521
481
  <div class="memproto">
522
482
  <table class="memname">
523
483
  <tr>
524
- <td class="memname">bool <a class="el" href="structPassenger_1_1PoolOptions.html#1709d96d9d5d59ce79c90434a45cb076">Passenger::PoolOptions::initiateSession</a> </td>
484
+ <td class="memname">bool <a class="el" href="structPassenger_1_1PoolOptions.html#a1709d96d9d5d59ce79c90434a45cb076">Passenger::PoolOptions::initiateSession</a></td>
525
485
  </tr>
526
486
  </table>
527
487
  </div>
528
488
  <div class="memdoc">
529
489
 
530
- <p>
531
- Whether the session returned by ApplicationPool::Interface::get() should be automatically initiated.
532
- <p>
533
- Defaults to true.
490
+ <p>Whether the session returned by ApplicationPool::Interface::get() should be automatically initiated. </p>
491
+ <p>Defaults to true. </p>
492
+
493
+ </div>
534
494
  </div>
535
- </div><p>
536
- <a class="anchor" name="ce54185a9981f103a036a7ac3e768612"></a><!-- doxytag: member="Passenger::PoolOptions::log" ref="ce54185a9981f103a036a7ac3e768612" args="" -->
495
+ <a class="anchor" id="ace54185a9981f103a036a7ac3e768612"></a><!-- doxytag: member="Passenger::PoolOptions::log" ref="ace54185a9981f103a036a7ac3e768612" args="" -->
537
496
  <div class="memitem">
538
497
  <div class="memproto">
539
498
  <table class="memname">
540
499
  <tr>
541
- <td class="memname">AnalyticsLogPtr <a class="el" href="structPassenger_1_1PoolOptions.html#ce54185a9981f103a036a7ac3e768612">Passenger::PoolOptions::log</a> </td>
500
+ <td class="memname">AnalyticsLogPtr <a class="el" href="structPassenger_1_1PoolOptions.html#ace54185a9981f103a036a7ac3e768612">Passenger::PoolOptions::log</a></td>
542
501
  </tr>
543
502
  </table>
544
503
  </div>
545
504
  <div class="memdoc">
546
505
 
547
- <p>
548
- An analytics log object to log things to.
549
- <p>
550
- May be the null pointer, in which case analytics logging is disabled.
506
+ <p>An analytics log object to log things to. </p>
507
+ <p>May be the null pointer, in which case analytics logging is disabled for this request. </p>
508
+
551
509
  </div>
552
- </div><p>
553
- <a class="anchor" name="70251ed3cb3713cb26a0b166c6b015c0"></a><!-- doxytag: member="Passenger::PoolOptions::maxRequests" ref="70251ed3cb3713cb26a0b166c6b015c0" args="" -->
510
+ </div>
511
+ <a class="anchor" id="a70251ed3cb3713cb26a0b166c6b015c0"></a><!-- doxytag: member="Passenger::PoolOptions::maxRequests" ref="a70251ed3cb3713cb26a0b166c6b015c0" args="" -->
554
512
  <div class="memitem">
555
513
  <div class="memproto">
556
514
  <table class="memname">
557
515
  <tr>
558
- <td class="memname">unsigned long <a class="el" href="structPassenger_1_1PoolOptions.html#70251ed3cb3713cb26a0b166c6b015c0">Passenger::PoolOptions::maxRequests</a> </td>
516
+ <td class="memname">unsigned long <a class="el" href="structPassenger_1_1PoolOptions.html#a70251ed3cb3713cb26a0b166c6b015c0">Passenger::PoolOptions::maxRequests</a></td>
559
517
  </tr>
560
518
  </table>
561
519
  </div>
562
520
  <div class="memdoc">
563
521
 
564
- <p>
565
- The maximum number of requests that the spawned application may process before exiting.
566
- <p>
567
- A value of 0 means unlimited.
522
+ <p>The maximum number of requests that the spawned application may process before exiting. </p>
523
+ <p>A value of 0 means unlimited. </p>
524
+
568
525
  </div>
569
- </div><p>
570
- <a class="anchor" name="d3d545cee2806198797fc6b4197ff87b"></a><!-- doxytag: member="Passenger::PoolOptions::printExceptions" ref="d3d545cee2806198797fc6b4197ff87b" args="" -->
526
+ </div>
527
+ <a class="anchor" id="ad3d545cee2806198797fc6b4197ff87b"></a><!-- doxytag: member="Passenger::PoolOptions::printExceptions" ref="ad3d545cee2806198797fc6b4197ff87b" args="" -->
571
528
  <div class="memitem">
572
529
  <div class="memproto">
573
530
  <table class="memname">
574
531
  <tr>
575
- <td class="memname">bool <a class="el" href="structPassenger_1_1PoolOptions.html#d3d545cee2806198797fc6b4197ff87b">Passenger::PoolOptions::printExceptions</a> </td>
532
+ <td class="memname">bool <a class="el" href="structPassenger_1_1PoolOptions.html#ad3d545cee2806198797fc6b4197ff87b">Passenger::PoolOptions::printExceptions</a></td>
576
533
  </tr>
577
534
  </table>
578
535
  </div>
579
536
  <div class="memdoc">
580
537
 
581
- <p>
582
- Whether application processes should print exceptions that occurred during application initialization.
583
- <p>
584
- Defaults to true.
538
+ <p>Whether application processes should print exceptions that occurred during application initialization. </p>
539
+ <p>Defaults to true. </p>
540
+
541
+ </div>
585
542
  </div>
586
- </div><p>
587
- <a class="anchor" name="b0f889f70a3ed22f2423d110ddaf26f5"></a><!-- doxytag: member="Passenger::PoolOptions::restartDir" ref="b0f889f70a3ed22f2423d110ddaf26f5" args="" -->
543
+ <a class="anchor" id="ab0f889f70a3ed22f2423d110ddaf26f5"></a><!-- doxytag: member="Passenger::PoolOptions::restartDir" ref="ab0f889f70a3ed22f2423d110ddaf26f5" args="" -->
588
544
  <div class="memitem">
589
545
  <div class="memproto">
590
546
  <table class="memname">
591
547
  <tr>
592
- <td class="memname">string <a class="el" href="structPassenger_1_1PoolOptions.html#b0f889f70a3ed22f2423d110ddaf26f5">Passenger::PoolOptions::restartDir</a> </td>
548
+ <td class="memname">string <a class="el" href="structPassenger_1_1PoolOptions.html#ab0f889f70a3ed22f2423d110ddaf26f5">Passenger::PoolOptions::restartDir</a></td>
593
549
  </tr>
594
550
  </table>
595
551
  </div>
596
552
  <div class="memdoc">
597
553
 
598
- <p>
599
- The directory which contains restart.txt and always_restart.txt.
600
- <p>
601
- An empty string means that the default directory should be used.
554
+ <p>The directory which contains restart.txt and always_restart.txt. </p>
555
+ <p>An empty string means that the default directory should be used. </p>
556
+
557
+ </div>
602
558
  </div>
603
- </div><p>
604
- <a class="anchor" name="45665fffc8a20ea60a3fcafaff8627ab"></a><!-- doxytag: member="Passenger::PoolOptions::rights" ref="45665fffc8a20ea60a3fcafaff8627ab" args="" -->
559
+ <a class="anchor" id="a45665fffc8a20ea60a3fcafaff8627ab"></a><!-- doxytag: member="Passenger::PoolOptions::rights" ref="a45665fffc8a20ea60a3fcafaff8627ab" args="" -->
605
560
  <div class="memitem">
606
561
  <div class="memproto">
607
562
  <table class="memname">
608
563
  <tr>
609
- <td class="memname">Account::Rights <a class="el" href="structPassenger_1_1PoolOptions.html#45665fffc8a20ea60a3fcafaff8627ab">Passenger::PoolOptions::rights</a> </td>
564
+ <td class="memname">Account::Rights <a class="el" href="structPassenger_1_1PoolOptions.html#a45665fffc8a20ea60a3fcafaff8627ab">Passenger::PoolOptions::rights</a></td>
610
565
  </tr>
611
566
  </table>
612
567
  </div>
613
568
  <div class="memdoc">
614
569
 
615
- <p>
616
- Any rights that the spawned application process may have.
617
- <p>
618
- The <a class="el" href="classPassenger_1_1SpawnManager.html" title="An AbstractSpawnManager implementation.">SpawnManager</a> will create a new account for each spawned app, and that account will be assigned these rights.
570
+ <p>Any rights that the spawned application process may have. </p>
571
+ <p>The <a class="el" href="classPassenger_1_1SpawnManager.html" title="An AbstractSpawnManager implementation.">SpawnManager</a> will create a new account for each spawned app, and that account will be assigned these rights. </p>
572
+
573
+ </div>
619
574
  </div>
620
- </div><p>
621
- <a class="anchor" name="feb629e3ced79f5a2dbccc1beeeeab9e"></a><!-- doxytag: member="Passenger::PoolOptions::spawnMethod" ref="feb629e3ced79f5a2dbccc1beeeeab9e" args="" -->
575
+ <a class="anchor" id="afeb629e3ced79f5a2dbccc1beeeeab9e"></a><!-- doxytag: member="Passenger::PoolOptions::spawnMethod" ref="afeb629e3ced79f5a2dbccc1beeeeab9e" args="" -->
622
576
  <div class="memitem">
623
577
  <div class="memproto">
624
578
  <table class="memname">
625
579
  <tr>
626
- <td class="memname">string <a class="el" href="structPassenger_1_1PoolOptions.html#feb629e3ced79f5a2dbccc1beeeeab9e">Passenger::PoolOptions::spawnMethod</a> </td>
580
+ <td class="memname">string <a class="el" href="structPassenger_1_1PoolOptions.html#afeb629e3ced79f5a2dbccc1beeeeab9e">Passenger::PoolOptions::spawnMethod</a></td>
627
581
  </tr>
628
582
  </table>
629
583
  </div>
630
584
  <div class="memdoc">
631
585
 
632
- <p>
633
- Method with which application processes should be spawned.
634
- <p>
635
- Different methods have different performance and compatibility properties. Available methods are "smart-lv2" (default), "smart" and "conservative". The different spawning methods are explained in the "Spawning methods explained" section of the users guide.
586
+ <p>Method with which application processes should be spawned. </p>
587
+ <p>Different methods have different performance and compatibility properties. Available methods are "smart-lv2" (default), "smart" and "conservative". The different spawning methods are explained in the "Spawning methods explained" section of the users guide. </p>
588
+
636
589
  </div>
637
- </div><p>
638
- <a class="anchor" name="eaf5a998b4a5da2246685c2dfb8a8c6d"></a><!-- doxytag: member="Passenger::PoolOptions::statThrottleRate" ref="eaf5a998b4a5da2246685c2dfb8a8c6d" args="" -->
590
+ </div>
591
+ <a class="anchor" id="aeaf5a998b4a5da2246685c2dfb8a8c6d"></a><!-- doxytag: member="Passenger::PoolOptions::statThrottleRate" ref="aeaf5a998b4a5da2246685c2dfb8a8c6d" args="" -->
639
592
  <div class="memitem">
640
593
  <div class="memproto">
641
594
  <table class="memname">
642
595
  <tr>
643
- <td class="memname">unsigned long <a class="el" href="structPassenger_1_1PoolOptions.html#eaf5a998b4a5da2246685c2dfb8a8c6d">Passenger::PoolOptions::statThrottleRate</a> </td>
596
+ <td class="memname">unsigned long <a class="el" href="structPassenger_1_1PoolOptions.html#aeaf5a998b4a5da2246685c2dfb8a8c6d">Passenger::PoolOptions::statThrottleRate</a></td>
644
597
  </tr>
645
598
  </table>
646
599
  </div>
647
600
  <div class="memdoc">
648
601
 
649
- <p>
650
- A throttling rate for file stats.
651
- <p>
652
- When set to a non-zero value N, restart.txt and other files which are usually stat()ted on every ApplicationPool::get() call will be stat()ed at most every N seconds.
602
+ <p>A throttling rate for file stats. </p>
603
+ <p>When set to a non-zero value N, restart.txt and other files which are usually stat()ted on every ApplicationPool::get() call will be stat()ed at most every N seconds. </p>
604
+
653
605
  </div>
654
- </div><p>
655
- <a class="anchor" name="b610e568a7b5d3bb27460d6e35952b7e"></a><!-- doxytag: member="Passenger::PoolOptions::useGlobalQueue" ref="b610e568a7b5d3bb27460d6e35952b7e" args="" -->
606
+ </div>
607
+ <a class="anchor" id="ab610e568a7b5d3bb27460d6e35952b7e"></a><!-- doxytag: member="Passenger::PoolOptions::useGlobalQueue" ref="ab610e568a7b5d3bb27460d6e35952b7e" args="" -->
656
608
  <div class="memitem">
657
609
  <div class="memproto">
658
610
  <table class="memname">
659
611
  <tr>
660
- <td class="memname">bool <a class="el" href="structPassenger_1_1PoolOptions.html#b610e568a7b5d3bb27460d6e35952b7e">Passenger::PoolOptions::useGlobalQueue</a> </td>
612
+ <td class="memname">bool <a class="el" href="structPassenger_1_1PoolOptions.html#ab610e568a7b5d3bb27460d6e35952b7e">Passenger::PoolOptions::useGlobalQueue</a></td>
661
613
  </tr>
662
614
  </table>
663
615
  </div>
664
616
  <div class="memdoc">
665
617
 
666
- <p>
667
- Whether to use a global queue instead of a per-backend process queue.
668
- <p>
669
- This option is only used by ApplicationPool::get().<p>
670
- If enabled, when all backend processes are active, get() will wait until there's at least one backend process that's idle, instead of queuing the request into a random process's private queue. This is especially useful if a website has one or more long-running requests.
618
+ <p>Whether to use a global queue instead of a per-backend process queue. </p>
619
+ <p>This option is only used by ApplicationPool::get().</p>
620
+ <p>If enabled, when all backend processes are active, get() will wait until there's at least one backend process that's idle, instead of queuing the request into a random process's private queue. This is especially useful if a website has one or more long-running requests. </p>
621
+
671
622
  </div>
672
- </div><p>
673
- <a class="anchor" name="7bb617271b0a61645b17b9815ebf300c"></a><!-- doxytag: member="Passenger::PoolOptions::user" ref="7bb617271b0a61645b17b9815ebf300c" args="" -->
623
+ </div>
624
+ <a class="anchor" id="a7bb617271b0a61645b17b9815ebf300c"></a><!-- doxytag: member="Passenger::PoolOptions::user" ref="a7bb617271b0a61645b17b9815ebf300c" args="" -->
674
625
  <div class="memitem">
675
626
  <div class="memproto">
676
627
  <table class="memname">
677
628
  <tr>
678
- <td class="memname">string <a class="el" href="structPassenger_1_1PoolOptions.html#7bb617271b0a61645b17b9815ebf300c">Passenger::PoolOptions::user</a> </td>
629
+ <td class="memname">string <a class="el" href="structPassenger_1_1PoolOptions.html#a7bb617271b0a61645b17b9815ebf300c">Passenger::PoolOptions::user</a></td>
679
630
  </tr>
680
631
  </table>
681
632
  </div>
682
633
  <div class="memdoc">
683
634
 
684
- <p>
685
- See overview.
686
- <p>
635
+ <p>See overview. </p>
687
636
 
688
637
  </div>
689
- </div><p>
690
- <hr>The documentation for this struct was generated from the following file:<ul>
691
- <li><a class="el" href="PoolOptions_8h-source.html">PoolOptions.h</a></ul>
692
638
  </div>
693
- <hr size="1"><address style="text-align: right;"><small>Generated on Sun Mar 28 14:11:59 2010 for Passenger by&nbsp;
639
+ <hr/>The documentation for this struct was generated from the following file:<ul>
640
+ <li><a class="el" href="PoolOptions_8h_source.html">PoolOptions.h</a></li>
641
+ </ul>
642
+ </div>
643
+ <hr size="1"/><address style="text-align: right;"><small>Generated by&nbsp;
694
644
  <a href="http://www.doxygen.org/index.html">
695
- <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.8 </small></address>
645
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.2 </small></address>
696
646
  </body>
697
647
  </html>