passenger 4.0.20 → 4.0.21

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 (496) hide show
  1. checksums.yaml +8 -8
  2. checksums.yaml.gz.asc +7 -7
  3. data.tar.gz.asc +7 -7
  4. data/.gitignore +1 -0
  5. data/.travis.yml +1 -1
  6. data/NEWS +15 -0
  7. data/README.md +5 -3
  8. data/Rakefile +1 -0
  9. data/bin/passenger-config +1 -5
  10. data/bin/passenger-install-apache2-module +53 -5
  11. data/bin/passenger-install-nginx-module +19 -6
  12. data/bin/passenger-memory-stats +3 -3
  13. data/build/agents.rb +11 -8
  14. data/build/apache2.rb +9 -5
  15. data/build/basics.rb +15 -21
  16. data/build/common_library.rb +16 -6
  17. data/build/cplusplus_support.rb +5 -5
  18. data/build/cxx_tests.rb +3 -3
  19. data/build/documentation.rb +1 -1
  20. data/build/misc.rb +4 -37
  21. data/build/node_tests.rb +29 -0
  22. data/build/oxt_tests.rb +1 -1
  23. data/build/packaging.rb +29 -10
  24. data/build/preprocessor.rb +2 -1
  25. data/build/test_basics.rb +15 -6
  26. data/debian.template/locations.ini.template +1 -0
  27. data/debian.template/passenger.install.template +1 -0
  28. data/dev/copy_boost_headers.rb +7 -3
  29. data/dev/run_travis.sh +32 -16
  30. data/doc/Users guide Apache.idmap.txt +22 -34
  31. data/doc/Users guide Apache.txt +20 -234
  32. data/doc/Users guide Nginx.idmap.txt +84 -66
  33. data/doc/Users guide Nginx.txt +50 -1
  34. data/doc/Users guide Standalone.idmap.txt +74 -0
  35. data/doc/Users guide Standalone.txt +22 -9
  36. data/doc/Users guide.txt +51 -0
  37. data/doc/users_guide_snippets/environment_variables.txt +0 -3
  38. data/doc/users_guide_snippets/installation.txt +337 -380
  39. data/doc/users_guide_snippets/installation/run_installer.txt +58 -0
  40. data/doc/users_guide_snippets/installation/verify_running_epilogue.txt +6 -0
  41. data/doc/users_guide_snippets/support_information.txt +2 -9
  42. data/doc/users_guide_snippets/troubleshooting/default.txt +112 -0
  43. data/doc/users_guide_snippets/troubleshooting/rails.txt +56 -0
  44. data/doc/users_guide_snippets/where_to_get_support.txt +9 -0
  45. data/ext/apache2/Bucket.h +1 -1
  46. data/ext/apache2/Configuration.hpp +0 -44
  47. data/ext/apache2/CreateDirConfig.cpp +1 -1
  48. data/ext/apache2/CreateDirConfig.cpp.erb +1 -1
  49. data/ext/apache2/Hooks.cpp +28 -21
  50. data/ext/apache2/MergeDirConfig.cpp +1 -0
  51. data/ext/apache2/MergeDirConfig.cpp.erb +1 -1
  52. data/ext/apache2/SetHeaders.cpp +73 -0
  53. data/ext/apache2/SetHeaders.cpp.erb +88 -0
  54. data/ext/boost/algorithm/string/detail/find_format.hpp +5 -5
  55. data/ext/boost/algorithm/string/detail/find_format_all.hpp +5 -5
  56. data/ext/boost/algorithm/string/detail/finder.hpp +1 -1
  57. data/ext/boost/algorithm/string/formatter.hpp +2 -2
  58. data/ext/boost/assert.hpp +6 -1
  59. data/ext/boost/atomic.hpp +18 -0
  60. data/ext/boost/atomic/atomic.hpp +241 -0
  61. data/ext/boost/atomic/detail/base.hpp +585 -0
  62. data/ext/boost/atomic/detail/cas32strong.hpp +885 -0
  63. data/ext/boost/atomic/detail/cas32weak.hpp +947 -0
  64. data/ext/boost/atomic/detail/cas64strong.hpp +443 -0
  65. data/ext/boost/atomic/detail/config.hpp +54 -0
  66. data/ext/boost/atomic/detail/gcc-alpha.hpp +368 -0
  67. data/ext/boost/atomic/detail/gcc-armv6plus.hpp +252 -0
  68. data/ext/boost/atomic/detail/gcc-cas.hpp +157 -0
  69. data/ext/boost/atomic/detail/gcc-ppc.hpp +2850 -0
  70. data/ext/boost/atomic/detail/gcc-sparcv9.hpp +1259 -0
  71. data/ext/boost/atomic/detail/gcc-x86.hpp +1766 -0
  72. data/ext/boost/atomic/detail/generic-cas.hpp +206 -0
  73. data/ext/boost/atomic/detail/interlocked.hpp +200 -0
  74. data/ext/boost/atomic/detail/linux-arm.hpp +189 -0
  75. data/ext/boost/atomic/detail/lockpool.hpp +97 -0
  76. data/ext/boost/atomic/detail/platform.hpp +62 -0
  77. data/ext/boost/atomic/detail/type-classification.hpp +45 -0
  78. data/ext/boost/chrono/config.hpp +8 -3
  79. data/ext/boost/chrono/duration.hpp +9 -10
  80. data/ext/boost/chrono/system_clocks.hpp +1 -1
  81. data/ext/boost/chrono/time_point.hpp +4 -3
  82. data/ext/boost/config/auto_link.hpp +53 -52
  83. data/ext/boost/config/compiler/borland.hpp +1 -0
  84. data/ext/boost/config/compiler/clang.hpp +24 -1
  85. data/ext/boost/config/compiler/codegear.hpp +1 -0
  86. data/ext/boost/config/compiler/common_edg.hpp +1 -0
  87. data/ext/boost/config/compiler/cray.hpp +1 -0
  88. data/ext/boost/config/compiler/digitalmars.hpp +1 -0
  89. data/ext/boost/config/compiler/gcc.hpp +29 -3
  90. data/ext/boost/config/compiler/gcc_xml.hpp +2 -1
  91. data/ext/boost/config/compiler/hp_acc.hpp +1 -0
  92. data/ext/boost/config/compiler/intel.hpp +1 -1
  93. data/ext/boost/config/compiler/metrowerks.hpp +1 -0
  94. data/ext/boost/config/compiler/mpw.hpp +1 -0
  95. data/ext/boost/config/compiler/pathscale.hpp +1 -0
  96. data/ext/boost/config/compiler/pgi.hpp +1 -0
  97. data/ext/boost/config/compiler/sunpro_cc.hpp +1 -0
  98. data/ext/boost/config/compiler/vacpp.hpp +3 -2
  99. data/ext/boost/config/compiler/visualc.hpp +25 -11
  100. data/ext/boost/config/platform/vxworks.hpp +353 -15
  101. data/ext/boost/config/select_compiler_config.hpp +4 -4
  102. data/ext/boost/config/stdlib/dinkumware.hpp +10 -3
  103. data/ext/boost/config/stdlib/libstdcpp3.hpp +2 -1
  104. data/ext/boost/config/suffix.hpp +45 -19
  105. data/ext/boost/date_time/format_date_parser.hpp +1 -11
  106. data/ext/boost/date_time/strings_from_facet.hpp +5 -3
  107. data/ext/boost/detail/atomic_redef_macros.hpp +19 -0
  108. data/ext/boost/detail/atomic_undef_macros.hpp +39 -0
  109. data/ext/boost/detail/endian.hpp +52 -4
  110. data/ext/boost/detail/scoped_enum_emulation.hpp +10 -10
  111. data/ext/boost/detail/select_type.hpp +36 -0
  112. data/ext/boost/exception/current_exception_cast.hpp +1 -1
  113. data/ext/boost/exception/detail/error_info_impl.hpp +3 -5
  114. data/ext/boost/exception/detail/exception_ptr.hpp +3 -3
  115. data/ext/boost/exception/detail/is_output_streamable.hpp +1 -1
  116. data/ext/boost/exception/detail/object_hex_dump.hpp +1 -1
  117. data/ext/boost/exception/detail/type_info.hpp +1 -1
  118. data/ext/boost/exception/diagnostic_information.hpp +15 -14
  119. data/ext/boost/exception/exception.hpp +1 -1
  120. data/ext/boost/exception/get_error_info.hpp +1 -1
  121. data/ext/boost/exception/info.hpp +12 -13
  122. data/ext/boost/exception/to_string.hpp +6 -1
  123. data/ext/boost/exception/to_string_stub.hpp +9 -1
  124. data/ext/boost/foreach.hpp +5 -5
  125. data/ext/boost/function/function_template.hpp +6 -6
  126. data/ext/boost/functional/hash/detail/float_functions.hpp +90 -0
  127. data/ext/boost/functional/hash/detail/hash_float.hpp +11 -2
  128. data/ext/boost/functional/hash/extensions.hpp +14 -2
  129. data/ext/boost/functional/hash/hash.hpp +26 -5
  130. data/ext/boost/get_pointer.hpp +17 -2
  131. data/ext/boost/integer_traits.hpp +1 -1
  132. data/ext/boost/lexical_cast.hpp +615 -395
  133. data/ext/boost/libs/atomic/lockpool.cpp +24 -0
  134. data/ext/boost/libs/system/src/error_code.cpp +25 -18
  135. data/ext/boost/libs/thread/src/future.cpp +7 -5
  136. data/ext/boost/libs/thread/src/pthread/once.cpp +9 -3
  137. data/ext/boost/libs/thread/src/pthread/once_atomic.cpp +90 -0
  138. data/ext/boost/libs/thread/src/pthread/thread.cpp +129 -95
  139. data/ext/boost/libs/thread/src/pthread/timeconv.inl +20 -1
  140. data/ext/boost/limits.hpp +1 -1
  141. data/ext/boost/math/policies/policy.hpp +10 -0
  142. data/ext/boost/math/special_functions/detail/round_fwd.hpp +17 -4
  143. data/ext/boost/math/special_functions/fpclassify.hpp +114 -45
  144. data/ext/boost/math/special_functions/math_fwd.hpp +195 -83
  145. data/ext/boost/math/special_functions/sign.hpp +13 -8
  146. data/ext/boost/math/tools/config.hpp +38 -16
  147. data/ext/boost/move/algorithm.hpp +275 -0
  148. data/ext/boost/move/core.hpp +332 -0
  149. data/ext/boost/move/detail/config_begin.hpp +23 -0
  150. data/ext/boost/move/detail/config_end.hpp +20 -0
  151. data/ext/boost/move/detail/meta_utils.hpp +158 -0
  152. data/ext/boost/move/iterator.hpp +298 -0
  153. data/ext/boost/move/move.hpp +10 -1256
  154. data/ext/boost/move/traits.hpp +142 -0
  155. data/ext/boost/move/utility.hpp +194 -0
  156. data/ext/boost/mpl/assert.hpp +72 -4
  157. data/ext/boost/noncopyable.hpp +15 -3
  158. data/ext/boost/pointer_to_other.hpp +55 -0
  159. data/ext/boost/range/concepts.hpp +4 -4
  160. data/ext/boost/range/detail/extract_optional_type.hpp +1 -1
  161. data/ext/boost/range/empty.hpp +1 -1
  162. data/ext/boost/range/iterator_range_core.hpp +4 -1
  163. data/ext/boost/range/iterator_range_io.hpp +2 -2
  164. data/ext/boost/ratio/config.hpp +6 -0
  165. data/ext/boost/ratio/detail/overflow_helpers.hpp +2 -2
  166. data/ext/boost/smart_ptr/allocate_shared_array.hpp +250 -0
  167. data/ext/boost/smart_ptr/detail/allocate_array_helper.hpp +169 -0
  168. data/ext/boost/smart_ptr/detail/array_deleter.hpp +124 -0
  169. data/ext/boost/smart_ptr/detail/array_traits.hpp +53 -0
  170. data/ext/boost/smart_ptr/detail/array_utility.hpp +178 -0
  171. data/ext/boost/smart_ptr/detail/make_array_helper.hpp +157 -0
  172. data/ext/boost/smart_ptr/detail/operator_bool.hpp +16 -9
  173. data/ext/boost/smart_ptr/detail/shared_count.hpp +78 -7
  174. data/ext/boost/smart_ptr/detail/sp_convertible.hpp +15 -0
  175. data/ext/boost/smart_ptr/detail/sp_counted_base.hpp +12 -6
  176. data/ext/boost/smart_ptr/detail/sp_counted_base_acc_ia64.hpp +1 -0
  177. data/ext/boost/smart_ptr/detail/sp_counted_base_aix.hpp +1 -0
  178. data/ext/boost/smart_ptr/detail/sp_counted_base_cw_ppc.hpp +1 -0
  179. data/ext/boost/smart_ptr/detail/sp_counted_base_cw_x86.hpp +1 -0
  180. data/ext/boost/smart_ptr/detail/sp_counted_base_gcc_ia64.hpp +1 -0
  181. data/ext/boost/smart_ptr/detail/sp_counted_base_gcc_mips.hpp +1 -0
  182. data/ext/boost/smart_ptr/detail/sp_counted_base_gcc_ppc.hpp +1 -0
  183. data/ext/boost/smart_ptr/detail/sp_counted_base_gcc_sparc.hpp +1 -0
  184. data/ext/boost/smart_ptr/detail/sp_counted_base_gcc_x86.hpp +1 -0
  185. data/ext/boost/smart_ptr/detail/sp_counted_base_nt.hpp +1 -0
  186. data/ext/boost/smart_ptr/detail/sp_counted_base_pt.hpp +1 -0
  187. data/ext/boost/smart_ptr/detail/sp_counted_base_snc_ps3.hpp +162 -0
  188. data/ext/boost/smart_ptr/detail/sp_counted_base_solaris.hpp +1 -0
  189. data/ext/boost/smart_ptr/detail/sp_counted_base_spin.hpp +1 -0
  190. data/ext/boost/smart_ptr/detail/sp_counted_base_sync.hpp +1 -0
  191. data/ext/boost/smart_ptr/detail/sp_counted_base_vacpp_ppc.hpp +1 -0
  192. data/ext/boost/smart_ptr/detail/sp_counted_impl.hpp +15 -0
  193. data/ext/boost/smart_ptr/detail/sp_forward.hpp +39 -0
  194. data/ext/boost/smart_ptr/detail/sp_has_sync.hpp +19 -3
  195. data/ext/boost/smart_ptr/detail/sp_if_array.hpp +31 -0
  196. data/ext/boost/smart_ptr/detail/sp_nullptr_t.hpp +45 -0
  197. data/ext/boost/smart_ptr/detail/spinlock_gcc_arm.hpp +5 -12
  198. data/ext/boost/smart_ptr/enable_shared_from_this.hpp +4 -4
  199. data/ext/boost/smart_ptr/make_shared.hpp +5 -1060
  200. data/ext/boost/smart_ptr/make_shared_array.hpp +247 -0
  201. data/ext/boost/smart_ptr/make_shared_object.hpp +1128 -0
  202. data/ext/boost/smart_ptr/scoped_array.hpp +32 -7
  203. data/ext/boost/smart_ptr/scoped_ptr.hpp +31 -5
  204. data/ext/boost/smart_ptr/shared_array.hpp +135 -20
  205. data/ext/boost/smart_ptr/shared_ptr.hpp +444 -126
  206. data/ext/boost/smart_ptr/weak_ptr.hpp +39 -28
  207. data/ext/boost/static_assert.hpp +74 -17
  208. data/ext/boost/system/error_code.hpp +76 -68
  209. data/ext/boost/system/system_error.hpp +5 -1
  210. data/ext/boost/thread/barrier.hpp +6 -2
  211. data/ext/boost/thread/completion_latch.hpp +233 -0
  212. data/ext/boost/thread/condition.hpp +6 -1
  213. data/ext/boost/thread/detail/async_func.hpp +571 -0
  214. data/ext/boost/thread/detail/config.hpp +248 -40
  215. data/ext/boost/thread/detail/counter.hpp +93 -0
  216. data/ext/boost/thread/detail/delete.hpp +12 -0
  217. data/ext/boost/thread/detail/invoke.hpp +1351 -0
  218. data/ext/boost/thread/detail/is_convertible.hpp +48 -0
  219. data/ext/boost/thread/detail/lockable_wrapper.hpp +45 -0
  220. data/ext/boost/thread/detail/log.hpp +83 -0
  221. data/ext/boost/thread/detail/make_tuple_indices.hpp +224 -0
  222. data/ext/boost/thread/detail/move.hpp +32 -16
  223. data/ext/boost/thread/detail/thread.hpp +236 -41
  224. data/ext/boost/thread/detail/thread_group.hpp +55 -9
  225. data/ext/boost/thread/detail/thread_interruption.hpp +4 -1
  226. data/ext/boost/thread/exceptions.hpp +2 -0
  227. data/ext/boost/thread/externally_locked.hpp +351 -0
  228. data/ext/boost/thread/externally_locked_stream.hpp +170 -0
  229. data/ext/boost/thread/future.hpp +2517 -455
  230. data/ext/boost/thread/future_error_code.hpp +61 -0
  231. data/ext/boost/thread/is_locked_by_this_thread.hpp +39 -0
  232. data/ext/boost/thread/latch.hpp +142 -0
  233. data/ext/boost/thread/lock_algorithms.hpp +468 -0
  234. data/ext/boost/thread/lock_concepts.hpp +197 -0
  235. data/ext/boost/thread/lock_factories.hpp +78 -0
  236. data/ext/boost/thread/lock_guard.hpp +88 -0
  237. data/ext/boost/thread/lock_options.hpp +31 -0
  238. data/ext/boost/thread/lock_traits.hpp +45 -0
  239. data/ext/boost/thread/lock_types.hpp +1226 -0
  240. data/ext/boost/thread/lockable_adapter.hpp +226 -0
  241. data/ext/boost/thread/lockable_concepts.hpp +157 -0
  242. data/ext/boost/thread/lockable_traits.hpp +207 -0
  243. data/ext/boost/thread/locks.hpp +5 -1816
  244. data/ext/boost/thread/mutex.hpp +33 -1
  245. data/ext/boost/thread/null_mutex.hpp +243 -0
  246. data/ext/boost/thread/once.hpp +10 -1
  247. data/ext/boost/thread/poly_lockable.hpp +68 -0
  248. data/ext/boost/thread/poly_lockable_adapter.hpp +89 -0
  249. data/ext/boost/thread/poly_shared_lockable.hpp +135 -0
  250. data/ext/boost/thread/poly_shared_lockable_adapter.hpp +170 -0
  251. data/ext/boost/thread/pthread/condition_variable.hpp +74 -26
  252. data/ext/boost/thread/pthread/condition_variable_fwd.hpp +54 -27
  253. data/ext/boost/thread/pthread/mutex.hpp +101 -38
  254. data/ext/boost/thread/pthread/once.hpp +459 -44
  255. data/ext/boost/thread/pthread/once_atomic.hpp +313 -0
  256. data/ext/boost/thread/pthread/recursive_mutex.hpp +19 -10
  257. data/ext/boost/thread/pthread/shared_mutex.hpp +226 -61
  258. data/ext/boost/thread/pthread/shared_mutex_assert.hpp +724 -0
  259. data/ext/boost/thread/pthread/thread_data.hpp +53 -50
  260. data/ext/boost/thread/pthread/timespec.hpp +96 -12
  261. data/ext/boost/thread/recursive_mutex.hpp +44 -1
  262. data/ext/boost/thread/reverse_lock.hpp +3 -2
  263. data/ext/boost/thread/scoped_thread.hpp +285 -0
  264. data/ext/boost/thread/shared_lock_guard.hpp +2 -1
  265. data/ext/boost/thread/shared_mutex.hpp +23 -0
  266. data/ext/boost/thread/strict_lock.hpp +235 -0
  267. data/ext/boost/thread/sync_bounded_queue.hpp +594 -0
  268. data/ext/boost/thread/sync_queue.hpp +516 -0
  269. data/ext/boost/thread/synchronized_value.hpp +1001 -0
  270. data/ext/boost/thread/testable_mutex.hpp +148 -0
  271. data/ext/boost/thread/thread.hpp +1 -13
  272. data/ext/boost/thread/thread_functors.hpp +57 -0
  273. data/ext/boost/thread/thread_guard.hpp +46 -0
  274. data/ext/boost/thread/thread_only.hpp +29 -0
  275. data/ext/boost/thread/v2/shared_mutex.hpp +1062 -0
  276. data/ext/boost/thread/v2/thread.hpp +37 -10
  277. data/ext/boost/thread/xtime.hpp +2 -1
  278. data/ext/boost/token_functions.hpp +16 -16
  279. data/ext/boost/type_traits/add_lvalue_reference.hpp +26 -0
  280. data/ext/boost/type_traits/add_reference.hpp +1 -1
  281. data/ext/boost/type_traits/add_rvalue_reference.hpp +4 -4
  282. data/ext/boost/type_traits/aligned_storage.hpp +13 -0
  283. data/ext/boost/type_traits/common_type.hpp +11 -12
  284. data/ext/boost/type_traits/config.hpp +1 -1
  285. data/ext/boost/type_traits/detail/common_type_imp.hpp +1 -1
  286. data/ext/boost/type_traits/detail/has_binary_operator.hpp +1 -1
  287. data/ext/boost/type_traits/detail/is_function_ptr_tester.hpp +1 -1
  288. data/ext/boost/type_traits/has_left_shift.hpp +49 -0
  289. data/ext/boost/type_traits/has_right_shift.hpp +49 -0
  290. data/ext/boost/type_traits/has_trivial_move_assign.hpp +57 -0
  291. data/ext/boost/type_traits/has_trivial_move_constructor.hpp +57 -0
  292. data/ext/boost/type_traits/intrinsics.hpp +18 -2
  293. data/ext/boost/type_traits/is_abstract.hpp +1 -1
  294. data/ext/boost/type_traits/is_array.hpp +1 -1
  295. data/ext/boost/type_traits/is_const.hpp +1 -1
  296. data/ext/boost/type_traits/is_convertible.hpp +78 -17
  297. data/ext/boost/type_traits/is_function.hpp +6 -1
  298. data/ext/boost/type_traits/is_integral.hpp +6 -1
  299. data/ext/boost/type_traits/is_nothrow_move_assignable.hpp +84 -0
  300. data/ext/boost/type_traits/is_nothrow_move_constructible.hpp +84 -0
  301. data/ext/boost/type_traits/is_pod.hpp +3 -1
  302. data/ext/boost/type_traits/is_rvalue_reference.hpp +1 -1
  303. data/ext/boost/type_traits/is_volatile.hpp +1 -1
  304. data/ext/boost/type_traits/make_signed.hpp +153 -0
  305. data/ext/boost/type_traits/make_unsigned.hpp +16 -0
  306. data/ext/boost/type_traits/remove_const.hpp +1 -1
  307. data/ext/boost/type_traits/remove_cv.hpp +1 -1
  308. data/ext/boost/type_traits/remove_reference.hpp +1 -1
  309. data/ext/boost/type_traits/remove_volatile.hpp +1 -1
  310. data/ext/boost/unordered/detail/allocate.hpp +1120 -0
  311. data/ext/boost/unordered/detail/buckets.hpp +876 -0
  312. data/ext/boost/unordered/detail/equivalent.hpp +680 -0
  313. data/ext/boost/unordered/detail/extract_key.hpp +183 -0
  314. data/ext/boost/unordered/detail/fwd.hpp +23 -0
  315. data/ext/boost/unordered/detail/table.hpp +861 -0
  316. data/ext/boost/unordered/detail/unique.hpp +622 -0
  317. data/ext/boost/unordered/detail/util.hpp +260 -0
  318. data/ext/boost/unordered/unordered_map.hpp +1652 -0
  319. data/ext/boost/unordered/unordered_map_fwd.hpp +65 -0
  320. data/ext/boost/unordered/unordered_set.hpp +1549 -0
  321. data/ext/boost/unordered/unordered_set_fwd.hpp +63 -0
  322. data/ext/boost/unordered_map.hpp +18 -0
  323. data/ext/boost/unordered_set.hpp +18 -0
  324. data/ext/boost/utility/addressof.hpp +2 -2
  325. data/ext/boost/utility/result_of.hpp +8 -1
  326. data/ext/boost/version.hpp +2 -2
  327. data/ext/common/Account.h +1 -1
  328. data/ext/common/AccountsDatabase.h +1 -1
  329. data/ext/common/AgentsStarter.cpp +3 -1
  330. data/ext/common/AgentsStarter.h +2 -2
  331. data/ext/common/ApplicationPool2/AppTypes.cpp +24 -6
  332. data/ext/common/ApplicationPool2/AppTypes.h +17 -8
  333. data/ext/common/ApplicationPool2/Common.h +12 -12
  334. data/ext/common/ApplicationPool2/DirectSpawner.h +2 -2
  335. data/ext/common/ApplicationPool2/DummySpawner.h +3 -3
  336. data/ext/common/ApplicationPool2/Group.h +6 -6
  337. data/ext/common/ApplicationPool2/Implementation.cpp +19 -19
  338. data/ext/common/ApplicationPool2/PipeWatcher.h +5 -5
  339. data/ext/common/ApplicationPool2/Pool.h +21 -21
  340. data/ext/common/ApplicationPool2/Process.h +6 -6
  341. data/ext/common/ApplicationPool2/Session.h +1 -1
  342. data/ext/common/ApplicationPool2/SmartSpawner.h +24 -12
  343. data/ext/common/ApplicationPool2/Socket.h +2 -2
  344. data/ext/common/ApplicationPool2/Spawner.h +64 -14
  345. data/ext/common/ApplicationPool2/SpawnerFactory.h +7 -7
  346. data/ext/common/ApplicationPool2/SuperGroup.h +5 -5
  347. data/ext/common/BackgroundEventLoop.cpp +4 -4
  348. data/ext/common/BackgroundEventLoop.h +1 -1
  349. data/ext/common/Constants.h +13 -1
  350. data/ext/common/EventedBufferedInput.h +8 -8
  351. data/ext/common/Exceptions.cpp +71 -0
  352. data/ext/common/Exceptions.h +60 -7
  353. data/ext/common/FileDescriptor.h +4 -4
  354. data/ext/common/MessageClient.h +1 -1
  355. data/ext/common/MessageServer.h +5 -5
  356. data/ext/common/MultiLibeio.cpp +3 -3
  357. data/ext/common/MultiLibeio.h +2 -2
  358. data/ext/common/RandomGenerator.h +11 -11
  359. data/ext/common/ResourceLocator.h +8 -1
  360. data/ext/common/SafeLibev.h +12 -12
  361. data/ext/common/ServerInstanceDir.h +11 -3
  362. data/ext/common/UnionStation.h +10 -10
  363. data/ext/common/Utils.cpp +11 -13
  364. data/ext/common/Utils.h +9 -9
  365. data/ext/common/Utils/BlockingQueue.h +10 -10
  366. data/ext/common/Utils/BufferedIO.h +1 -1
  367. data/ext/common/Utils/CachedFileStat.hpp +2 -2
  368. data/ext/common/Utils/FileChangeChecker.h +1 -1
  369. data/ext/common/Utils/HashMap.h +13 -4
  370. data/ext/common/Utils/IOUtils.cpp +33 -10
  371. data/ext/common/Utils/IniFile.h +3 -3
  372. data/ext/common/Utils/Lock.h +2 -2
  373. data/ext/common/Utils/MessagePassing.h +10 -10
  374. data/ext/common/Utils/ProcessMetricsCollector.h +24 -6
  375. data/ext/common/Utils/ScopeGuard.h +5 -5
  376. data/ext/common/Utils/jsoncpp.cpp +2 -0
  377. data/ext/common/agents/HelperAgent/FileBackedPipe.h +26 -26
  378. data/ext/common/agents/HelperAgent/Main.cpp +18 -18
  379. data/ext/common/agents/HelperAgent/RequestHandler.cpp +4 -4
  380. data/ext/common/agents/HelperAgent/RequestHandler.h +30 -21
  381. data/ext/common/agents/LoggingAgent/AdminController.h +1 -1
  382. data/ext/common/agents/LoggingAgent/FilterSupport.h +13 -11
  383. data/ext/common/agents/LoggingAgent/LoggingServer.h +11 -11
  384. data/ext/common/agents/LoggingAgent/Main.cpp +9 -9
  385. data/ext/common/agents/LoggingAgent/RemoteSender.h +3 -3
  386. data/ext/common/agents/SpawnPreparer.cpp +1 -0
  387. data/ext/common/agents/Watchdog/AgentWatcher.cpp +8 -7
  388. data/ext/common/agents/Watchdog/Main.cpp +81 -73
  389. data/ext/common/agents/Watchdog/ServerInstanceDirToucher.cpp +1 -1
  390. data/ext/libev/Changes +57 -0
  391. data/ext/libev/LICENSE +2 -1
  392. data/ext/libev/Makefile.in +110 -50
  393. data/ext/libev/README +8 -8
  394. data/ext/libev/aclocal.m4 +1503 -861
  395. data/ext/libev/config.guess +290 -304
  396. data/ext/libev/config.sub +77 -198
  397. data/ext/libev/configure +1735 -890
  398. data/ext/libev/configure.ac +3 -2
  399. data/ext/libev/ev++.h +6 -6
  400. data/ext/libev/ev.c +541 -214
  401. data/ext/libev/ev.h +106 -100
  402. data/ext/libev/ev_epoll.c +1 -1
  403. data/ext/libev/ev_kqueue.c +20 -4
  404. data/ext/libev/ev_vars.h +15 -16
  405. data/ext/libev/ev_win32.c +12 -2
  406. data/ext/libev/ev_wrap.h +162 -160
  407. data/ext/libev/event.c +29 -6
  408. data/ext/libev/event.h +9 -2
  409. data/ext/libev/ltmain.sh +2632 -1384
  410. data/ext/nginx/ConfigurationCommands.c +1 -1
  411. data/ext/nginx/ConfigurationCommands.c.erb +3 -1
  412. data/ext/nginx/ContentHandler.c +25 -2
  413. data/ext/nginx/CreateLocationConfig.c +1 -0
  414. data/ext/nginx/CreateLocationConfig.c.erb +1 -1
  415. data/ext/nginx/MergeLocationConfig.c +1 -0
  416. data/ext/nginx/MergeLocationConfig.c.erb +1 -1
  417. data/ext/nginx/config +12 -0
  418. data/ext/oxt/dynamic_thread_group.hpp +7 -4
  419. data/ext/oxt/system_calls.cpp +5 -1
  420. data/ext/oxt/system_calls.hpp +3 -0
  421. data/helper-scripts/node-loader.js +117 -249
  422. data/lib/phusion_passenger.rb +27 -5
  423. data/lib/phusion_passenger/abstract_installer.rb +104 -9
  424. data/lib/phusion_passenger/admin_tools/memory_stats.rb +10 -9
  425. data/lib/phusion_passenger/apache2/config_options.rb +6 -3
  426. data/lib/phusion_passenger/common_library.rb +7 -1
  427. data/lib/phusion_passenger/constants.rb +6 -0
  428. data/lib/phusion_passenger/loader_shared_helpers.rb +7 -4
  429. data/lib/phusion_passenger/nginx/config_options.rb +2 -1
  430. data/lib/phusion_passenger/packaging.rb +3 -0
  431. data/lib/phusion_passenger/platform_info/apache.rb +43 -6
  432. data/lib/phusion_passenger/platform_info/apache_detector.rb +15 -5
  433. data/lib/phusion_passenger/platform_info/compiler.rb +167 -32
  434. data/lib/phusion_passenger/platform_info/cxx_portability.rb +133 -77
  435. data/lib/phusion_passenger/platform_info/depcheck.rb +17 -7
  436. data/lib/phusion_passenger/platform_info/depcheck_specs/apache2.rb +3 -3
  437. data/lib/phusion_passenger/platform_info/depcheck_specs/compiler_toolchain.rb +4 -4
  438. data/lib/phusion_passenger/platform_info/depcheck_specs/ruby.rb +5 -6
  439. data/lib/phusion_passenger/platform_info/linux.rb +2 -1
  440. data/lib/phusion_passenger/platform_info/operating_system.rb +1 -1
  441. data/lib/phusion_passenger/platform_info/ruby.rb +18 -3
  442. data/lib/phusion_passenger/standalone/runtime_installer.rb +6 -2
  443. data/lib/phusion_passenger/standalone/start_command.rb +8 -2
  444. data/lib/phusion_passenger/utils/ansi_colors.rb +9 -0
  445. data/lib/phusion_passenger/utils/hosts_file_parser.rb +4 -2
  446. data/node_lib/phusion_passenger/httplib_emulation.js +141 -0
  447. data/node_lib/phusion_passenger/line_reader.js +154 -0
  448. data/node_lib/phusion_passenger/request_handler.js +65 -0
  449. data/node_lib/phusion_passenger/session_protocol_parser.js +113 -0
  450. data/resources/templates/apache2/deployment_example.txt.erb +2 -1
  451. data/resources/templates/apache2/installing_against_a_different_apache.txt.erb +14 -0
  452. data/resources/templates/apache2/multiple_apache_installations_detected.txt.erb +15 -0
  453. data/resources/templates/apache2/possible_solutions_for_compilation_and_installation_problems.txt.erb +4 -5
  454. data/resources/templates/general_error_with_html.html.template +1 -1
  455. data/resources/templates/installer_common/gem_install_permission_problems.txt.erb +17 -0
  456. data/resources/templates/installer_common/low_amount_of_memory_warning.txt.erb +6 -4
  457. data/resources/templates/installer_common/world_inaccessible_directories.txt.erb +16 -0
  458. data/resources/templates/nginx/deployment_example.txt.erb +2 -1
  459. data/resources/templates/nginx/possible_solutions_for_compilation_and_installation_problems.txt.erb +4 -5
  460. data/resources/templates/standalone/config.erb +1 -0
  461. data/test/cxx/ApplicationPool2/DirectSpawnerTest.cpp +3 -3
  462. data/test/cxx/ApplicationPool2/PoolTest.cpp +4 -4
  463. data/test/cxx/ApplicationPool2/ProcessTest.cpp +5 -5
  464. data/test/cxx/ApplicationPool2/SmartSpawnerTest.cpp +5 -5
  465. data/test/cxx/ApplicationPool2/SpawnerTestCases.cpp +1 -1
  466. data/test/cxx/EventedBufferedInputTest.cpp +6 -6
  467. data/test/cxx/FileBackedPipeTest.cpp +1 -1
  468. data/test/cxx/MessagePassingTest.cpp +1 -1
  469. data/test/cxx/MessageServerTest.cpp +4 -4
  470. data/test/cxx/RequestHandlerTest.cpp +7 -7
  471. data/test/cxx/UnionStationTest.cpp +2 -2
  472. data/test/node/line_reader_spec.js +338 -0
  473. data/test/node/spec_helper.js +27 -0
  474. data/test/ruby/standalone/runtime_installer_spec.rb +2 -1
  475. metadata +131 -22
  476. metadata.gz.asc +7 -7
  477. data/ext/boost/functional/hash/detail/container_fwd_0x.hpp +0 -29
  478. data/ext/boost/lambda/core.hpp +0 -79
  479. data/ext/boost/lambda/detail/actions.hpp +0 -174
  480. data/ext/boost/lambda/detail/arity_code.hpp +0 -110
  481. data/ext/boost/lambda/detail/function_adaptors.hpp +0 -789
  482. data/ext/boost/lambda/detail/is_instance_of.hpp +0 -104
  483. data/ext/boost/lambda/detail/lambda_config.hpp +0 -48
  484. data/ext/boost/lambda/detail/lambda_functor_base.hpp +0 -615
  485. data/ext/boost/lambda/detail/lambda_functors.hpp +0 -324
  486. data/ext/boost/lambda/detail/lambda_fwd.hpp +0 -74
  487. data/ext/boost/lambda/detail/lambda_traits.hpp +0 -578
  488. data/ext/boost/lambda/detail/member_ptr.hpp +0 -737
  489. data/ext/boost/lambda/detail/operator_actions.hpp +0 -139
  490. data/ext/boost/lambda/detail/operator_lambda_func_base.hpp +0 -271
  491. data/ext/boost/lambda/detail/operator_return_type_traits.hpp +0 -917
  492. data/ext/boost/lambda/detail/operators.hpp +0 -370
  493. data/ext/boost/lambda/detail/ret.hpp +0 -325
  494. data/ext/boost/lambda/detail/return_type_traits.hpp +0 -282
  495. data/ext/boost/lambda/detail/select_functions.hpp +0 -74
  496. data/ext/boost/lambda/lambda.hpp +0 -34
@@ -46,7 +46,7 @@ using namespace boost;
46
46
  */
47
47
  class SafeLibev {
48
48
  private:
49
- typedef function<void ()> Callback;
49
+ typedef boost::function<void ()> Callback;
50
50
 
51
51
  struct Command {
52
52
  int id;
@@ -63,7 +63,7 @@ private:
63
63
  ev_async async;
64
64
 
65
65
  boost::mutex syncher;
66
- condition_variable cond;
66
+ boost::condition_variable cond;
67
67
  vector<Command> commands;
68
68
  unsigned int nextCommandId;
69
69
 
@@ -78,7 +78,7 @@ private:
78
78
  }
79
79
 
80
80
  void runCommands() {
81
- unique_lock<boost::mutex> l(syncher);
81
+ boost::unique_lock<boost::mutex> l(syncher);
82
82
  vector<Command> commands = this->commands;
83
83
  this->commands.clear();
84
84
  l.unlock();
@@ -93,7 +93,7 @@ private:
93
93
  void startWatcherAndNotify(Watcher *watcher, bool *done) {
94
94
  watcher->set(loop);
95
95
  watcher->start();
96
- unique_lock<boost::mutex> l(syncher);
96
+ boost::unique_lock<boost::mutex> l(syncher);
97
97
  *done = true;
98
98
  cond.notify_all();
99
99
  }
@@ -101,14 +101,14 @@ private:
101
101
  template<typename Watcher>
102
102
  void stopWatcherAndNotify(Watcher *watcher, bool *done) {
103
103
  watcher->stop();
104
- unique_lock<boost::mutex> l(syncher);
104
+ boost::unique_lock<boost::mutex> l(syncher);
105
105
  *done = true;
106
106
  cond.notify_all();
107
107
  }
108
108
 
109
109
  void runAndNotify(const Callback *callback, bool *done) {
110
110
  (*callback)();
111
- unique_lock<boost::mutex> l(syncher);
111
+ boost::unique_lock<boost::mutex> l(syncher);
112
112
  *done = true;
113
113
  cond.notify_all();
114
114
  }
@@ -161,7 +161,7 @@ public:
161
161
  watcher.set(loop);
162
162
  watcher.start();
163
163
  } else {
164
- unique_lock<boost::mutex> l(syncher);
164
+ boost::unique_lock<boost::mutex> l(syncher);
165
165
  bool done = false;
166
166
  commands.push_back(Command(nextCommandId,
167
167
  boost::bind(&SafeLibev::startWatcherAndNotify<Watcher>,
@@ -179,7 +179,7 @@ public:
179
179
  if (pthread_equal(pthread_self(), loopThread)) {
180
180
  watcher.stop();
181
181
  } else {
182
- unique_lock<boost::mutex> l(syncher);
182
+ boost::unique_lock<boost::mutex> l(syncher);
183
183
  bool done = false;
184
184
  commands.push_back(Command(nextCommandId,
185
185
  boost::bind(&SafeLibev::stopWatcherAndNotify<Watcher>,
@@ -203,7 +203,7 @@ public:
203
203
 
204
204
  void runSync(const Callback &callback) {
205
205
  assert(callback != NULL);
206
- unique_lock<boost::mutex> l(syncher);
206
+ boost::unique_lock<boost::mutex> l(syncher);
207
207
  bool done = false;
208
208
  commands.push_back(Command(nextCommandId,
209
209
  boost::bind(&SafeLibev::runAndNotify, this,
@@ -235,7 +235,7 @@ public:
235
235
  assert(callback != NULL);
236
236
  unsigned int result;
237
237
  {
238
- unique_lock<boost::mutex> l(syncher);
238
+ boost::unique_lock<boost::mutex> l(syncher);
239
239
  commands.push_back(Command(nextCommandId, callback));
240
240
  result = nextCommandId;
241
241
  incNextCommandId();
@@ -252,7 +252,7 @@ public:
252
252
  * been called or is currently being called.
253
253
  */
254
254
  bool cancelCommand(int id) {
255
- unique_lock<boost::mutex> l(syncher);
255
+ boost::unique_lock<boost::mutex> l(syncher);
256
256
  // TODO: we can do a binary search because the command ID
257
257
  // is monotically increasing except on overflow.
258
258
  vector<Command>::iterator it, end = commands.end();
@@ -266,7 +266,7 @@ public:
266
266
  }
267
267
  };
268
268
 
269
- typedef shared_ptr<SafeLibev> SafeLibevPtr;
269
+ typedef boost::shared_ptr<SafeLibev> SafeLibevPtr;
270
270
 
271
271
 
272
272
  } // namespace Passenger
@@ -174,6 +174,10 @@ public:
174
174
 
175
175
  public:
176
176
  ~Generation() {
177
+ destroy();
178
+ }
179
+
180
+ void destroy() {
177
181
  if (owner) {
178
182
  removeDirTree(path);
179
183
  }
@@ -194,7 +198,7 @@ public:
194
198
  }
195
199
  };
196
200
 
197
- typedef shared_ptr<Generation> GenerationPtr;
201
+ typedef boost::shared_ptr<Generation> GenerationPtr;
198
202
 
199
203
  private:
200
204
  string path;
@@ -315,6 +319,10 @@ public:
315
319
  }
316
320
 
317
321
  ~ServerInstanceDir() {
322
+ destroy();
323
+ }
324
+
325
+ void destroy() {
318
326
  if (owner) {
319
327
  GenerationPtr newestGeneration;
320
328
  try {
@@ -361,7 +369,7 @@ public:
361
369
  }
362
370
 
363
371
  GenerationPtr getGeneration(unsigned int number) const {
364
- // Must not used make_shared() here because Watchdog.cpp
372
+ // Must not used boost::make_shared() here because Watchdog.cpp
365
373
  // deletes the raw pointer in cleanupAgentsInBackground().
366
374
  return ptr(new Generation(path, number));
367
375
  }
@@ -396,7 +404,7 @@ public:
396
404
  }
397
405
  };
398
406
 
399
- typedef shared_ptr<ServerInstanceDir> ServerInstanceDirPtr;
407
+ typedef boost::shared_ptr<ServerInstanceDir> ServerInstanceDirPtr;
400
408
 
401
409
  } // namespace Passenger
402
410
 
@@ -138,7 +138,7 @@ struct Connection {
138
138
  }
139
139
  };
140
140
 
141
- typedef shared_ptr<Connection> ConnectionPtr;
141
+ typedef boost::shared_ptr<Connection> ConnectionPtr;
142
142
 
143
143
 
144
144
  /** A special lock type for Connection that also keeps a smart
@@ -217,7 +217,7 @@ enum ExceptionHandlingMode {
217
217
 
218
218
 
219
219
  class LoggerFactory;
220
- typedef shared_ptr<LoggerFactory> LoggerFactoryPtr;
220
+ typedef boost::shared_ptr<LoggerFactory> LoggerFactoryPtr;
221
221
 
222
222
  inline void _checkinConnection(const LoggerFactoryPtr &loggerFactory, const ConnectionPtr &connection);
223
223
 
@@ -426,7 +426,7 @@ public:
426
426
  }
427
427
  };
428
428
 
429
- typedef shared_ptr<Logger> LoggerPtr;
429
+ typedef boost::shared_ptr<Logger> LoggerPtr;
430
430
 
431
431
 
432
432
  class ScopeLog: public noncopyable {
@@ -551,7 +551,7 @@ public:
551
551
  };
552
552
 
553
553
 
554
- class LoggerFactory: public enable_shared_from_this<LoggerFactory> {
554
+ class LoggerFactory: public boost::enable_shared_from_this<LoggerFactory> {
555
555
  private:
556
556
  static const unsigned int CONNECTION_POOL_MAX_SIZE = 10;
557
557
 
@@ -637,12 +637,12 @@ private:
637
637
  }
638
638
 
639
639
  guard.clear();
640
- return make_shared<Connection>(fd);
640
+ return boost::make_shared<Connection>(fd);
641
641
  }
642
642
 
643
643
  public:
644
644
  LoggerFactory() {
645
- nullLogger = make_shared<Logger>();
645
+ nullLogger = boost::make_shared<Logger>();
646
646
  }
647
647
 
648
648
  LoggerFactory(const string &_serverAddress, const string &_username,
@@ -652,7 +652,7 @@ public:
652
652
  password(_password),
653
653
  nodeName(determineNodeName(_nodeName))
654
654
  {
655
- nullLogger = make_shared<Logger>();
655
+ nullLogger = boost::make_shared<Logger>();
656
656
  if (!_serverAddress.empty() && isLocalSocketAddress(_serverAddress)) {
657
657
  maxConnectTries = 10;
658
658
  } else {
@@ -664,7 +664,7 @@ public:
664
664
 
665
665
  ConnectionPtr checkoutConnection() {
666
666
  TRACE_POINT();
667
- unique_lock<boost::mutex> l(syncher);
667
+ boost::unique_lock<boost::mutex> l(syncher);
668
668
  if (!connectionPool.empty()) {
669
669
  P_TRACE(3, "Checked out existing connection");
670
670
  ConnectionPtr connection = connectionPool.back();
@@ -808,7 +808,7 @@ public:
808
808
  }
809
809
 
810
810
  guard.clear();
811
- return make_shared<Logger>(shared_from_this(),
811
+ return boost::make_shared<Logger>(shared_from_this(),
812
812
  connection,
813
813
  string(txnId, end - txnId),
814
814
  groupName, category,
@@ -881,7 +881,7 @@ public:
881
881
  "true",
882
882
  NULL);
883
883
  guard.clear();
884
- return make_shared<Logger>(shared_from_this(),
884
+ return boost::make_shared<Logger>(shared_from_this(),
885
885
  connection,
886
886
  txnId, groupName, category,
887
887
  unionStationKey);
@@ -40,6 +40,7 @@
40
40
  #include <dirent.h>
41
41
  #include <limits.h>
42
42
  #include <unistd.h>
43
+ #include <string.h>
43
44
  #include <signal.h>
44
45
  #ifdef __linux__
45
46
  #include <sys/syscall.h>
@@ -413,17 +414,13 @@ getGroupName(gid_t gid) {
413
414
  }
414
415
 
415
416
  gid_t
416
- lookupGid(const StaticString &groupName) {
417
+ lookupGid(const string &groupName) {
417
418
  struct group *groupEntry;
418
- char name[groupName.size() + 1];
419
419
 
420
- memcpy(name, groupName.data(), groupName.size());
421
- name[groupName.size()] = '\0';
422
-
423
- groupEntry = getgrnam(name);
420
+ groupEntry = getgrnam(groupName.c_str());
424
421
  if (groupEntry == NULL) {
425
422
  if (looksLikePositiveNumber(groupName)) {
426
- return atoi(name);
423
+ return atoi(groupName);
427
424
  } else {
428
425
  return (gid_t) -1;
429
426
  }
@@ -826,7 +823,7 @@ prestartWebApps(const ResourceLocator &locator, const string &ruby,
826
823
  }
827
824
 
828
825
  void
829
- runAndPrintExceptions(const function<void ()> &func, bool toAbort) {
826
+ runAndPrintExceptions(const boost::function<void ()> &func, bool toAbort) {
830
827
  try {
831
828
  func();
832
829
  } catch (const boost::thread_interrupted &) {
@@ -840,7 +837,7 @@ runAndPrintExceptions(const function<void ()> &func, bool toAbort) {
840
837
  }
841
838
 
842
839
  void
843
- runAndPrintExceptions(const function<void ()> &func) {
840
+ runAndPrintExceptions(const boost::function<void ()> &func) {
844
841
  runAndPrintExceptions(func, true);
845
842
  }
846
843
 
@@ -851,10 +848,11 @@ getHostName() {
851
848
  // https://bugzilla.redhat.com/show_bug.cgi?id=130733
852
849
  hostNameMax = 255;
853
850
  }
854
- char hostname[hostNameMax + 1];
855
- if (gethostname(hostname, hostNameMax) == 0) {
856
- hostname[hostNameMax] = '\0';
857
- return hostname;
851
+
852
+ string buf(hostNameMax + 1, '\0');
853
+ if (gethostname(&buf[0], hostNameMax + 1) == 0) {
854
+ buf[hostNameMax] = '\0';
855
+ return string(buf.c_str());
858
856
  } else {
859
857
  int e = errno;
860
858
  throw SystemException("Unable to query the system's host name", e);
@@ -73,23 +73,23 @@ typedef enum {
73
73
  * Convenience shortcut for creating a <tt>shared_ptr</tt>.
74
74
  * Instead of:
75
75
  * @code
76
- * shared_ptr<Foo> foo;
76
+ * boost::shared_ptr<Foo> foo;
77
77
  * ...
78
- * foo = shared_ptr<Foo>(new Foo());
78
+ * foo = boost::shared_ptr<Foo>(new Foo());
79
79
  * @endcode
80
80
  * one can write:
81
81
  * @code
82
- * shared_ptr<Foo> foo;
82
+ * boost::shared_ptr<Foo> foo;
83
83
  * ...
84
84
  * foo = ptr(new Foo());
85
85
  * @endcode
86
86
  *
87
- * @param pointer The item to put in the shared_ptr object.
87
+ * @param pointer The item to put in the boost::shared_ptr object.
88
88
  * @ingroup Support
89
89
  */
90
- template<typename T> shared_ptr<T>
90
+ template<typename T> boost::shared_ptr<T>
91
91
  ptr(T *pointer) {
92
- return shared_ptr<T>(pointer);
92
+ return boost::shared_ptr<T>(pointer);
93
93
  }
94
94
 
95
95
  /**
@@ -222,7 +222,7 @@ string getGroupName(gid_t gid);
222
222
  *
223
223
  * Returns `(gid_t) -1` if the lookup fails.
224
224
  */
225
- gid_t lookupGid(const StaticString &groupName);
225
+ gid_t lookupGid(const string &groupName);
226
226
 
227
227
  /**
228
228
  * Converts a mode string into a mode_t value.
@@ -388,8 +388,8 @@ void prestartWebApps(const ResourceLocator &locator, const string &ruby,
388
388
  * otherwise the exception is swallowed.
389
389
  * thread_interrupted and all other exceptions are silently propagated.
390
390
  */
391
- void runAndPrintExceptions(const function<void ()> &func, bool toAbort);
392
- void runAndPrintExceptions(const function<void ()> &func);
391
+ void runAndPrintExceptions(const boost::function<void ()> &func, bool toAbort);
392
+ void runAndPrintExceptions(const boost::function<void ()> &func);
393
393
 
394
394
  /**
395
395
  * Returns the system's host name.
@@ -37,9 +37,9 @@ using namespace boost;
37
37
  template<typename T>
38
38
  class BlockingQueue {
39
39
  private:
40
- mutable timed_mutex lock;
41
- condition_variable_any added;
42
- condition_variable_any removed;
40
+ mutable boost::timed_mutex lock;
41
+ boost::condition_variable_any added;
42
+ boost::condition_variable_any removed;
43
43
  unsigned int max;
44
44
  std::queue<T> queue;
45
45
 
@@ -53,12 +53,12 @@ public:
53
53
  }
54
54
 
55
55
  unsigned int size() const {
56
- boost::lock_guard<timed_mutex> l(lock);
56
+ boost::lock_guard<boost::timed_mutex> l(lock);
57
57
  return queue.size();
58
58
  }
59
59
 
60
60
  void add(const T &item) {
61
- unique_lock<timed_mutex> l(lock);
61
+ boost::unique_lock<boost::timed_mutex> l(lock);
62
62
  while (atMaxCapacity()) {
63
63
  removed.wait(l);
64
64
  }
@@ -70,7 +70,7 @@ public:
70
70
  }
71
71
 
72
72
  bool tryAdd(const T &item) {
73
- boost::lock_guard<timed_mutex> l(lock);
73
+ boost::lock_guard<boost::timed_mutex> l(lock);
74
74
  if (!atMaxCapacity()) {
75
75
  queue.push(item);
76
76
  added.notify_one();
@@ -84,7 +84,7 @@ public:
84
84
  }
85
85
 
86
86
  T get() {
87
- unique_lock<timed_mutex> l(lock);
87
+ boost::unique_lock<boost::timed_mutex> l(lock);
88
88
  while (queue.empty()) {
89
89
  added.wait(l);
90
90
  }
@@ -98,7 +98,7 @@ public:
98
98
  }
99
99
 
100
100
  bool timedGet(T &output, unsigned int timeout) {
101
- unique_lock<timed_mutex> l(lock);
101
+ boost::unique_lock<boost::timed_mutex> l(lock);
102
102
  posix_time::ptime deadline = posix_time::microsec_clock::local_time() +
103
103
  posix_time::milliseconds(timeout);
104
104
  bool timedOut = false;
@@ -127,7 +127,7 @@ public:
127
127
  }
128
128
 
129
129
  bool tryGet(T &output) {
130
- unique_lock<timed_mutex> l(lock);
130
+ boost::unique_lock<boost::timed_mutex> l(lock);
131
131
  if (queue.empty()) {
132
132
  return false;
133
133
  } else {
@@ -142,7 +142,7 @@ public:
142
142
  }
143
143
 
144
144
  T peek() {
145
- unique_lock<timed_mutex> l(lock);
145
+ boost::unique_lock<boost::timed_mutex> l(lock);
146
146
  while (queue.empty()) {
147
147
  added.wait(l);
148
148
  }
@@ -72,7 +72,7 @@ private:
72
72
  }
73
73
 
74
74
  public:
75
- typedef function< pair<unsigned int, bool>(const char *data, unsigned int size) > AcceptFunction;
75
+ typedef boost::function< pair<unsigned int, bool>(const char *data, unsigned int size) > AcceptFunction;
76
76
 
77
77
  BufferedIO() { }
78
78
 
@@ -141,7 +141,7 @@ public:
141
141
  }
142
142
  };
143
143
 
144
- typedef shared_ptr<Entry> EntryPtr;
144
+ typedef boost::shared_ptr<Entry> EntryPtr;
145
145
  typedef list<EntryPtr> EntryList;
146
146
  typedef StringMap<EntryList::iterator> EntryMap;
147
147
 
@@ -196,7 +196,7 @@ public:
196
196
  }
197
197
 
198
198
  // Add to cache as most recently used.
199
- entry = make_shared<Entry>(filename);
199
+ entry = boost::make_shared<Entry>(filename);
200
200
  entries.push_front(entry);
201
201
  cache.set(filename, entries.begin());
202
202
  } else {
@@ -67,7 +67,7 @@ private:
67
67
  }
68
68
  };
69
69
 
70
- typedef shared_ptr<Entry> EntryPtr;
70
+ typedef boost::shared_ptr<Entry> EntryPtr;
71
71
  typedef list<EntryPtr> EntryList;
72
72
  typedef map<string, EntryList::iterator> EntryMap;
73
73