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.
- checksums.yaml +8 -8
- checksums.yaml.gz.asc +7 -7
- data.tar.gz.asc +7 -7
- data/.gitignore +1 -0
- data/.travis.yml +1 -1
- data/NEWS +15 -0
- data/README.md +5 -3
- data/Rakefile +1 -0
- data/bin/passenger-config +1 -5
- data/bin/passenger-install-apache2-module +53 -5
- data/bin/passenger-install-nginx-module +19 -6
- data/bin/passenger-memory-stats +3 -3
- data/build/agents.rb +11 -8
- data/build/apache2.rb +9 -5
- data/build/basics.rb +15 -21
- data/build/common_library.rb +16 -6
- data/build/cplusplus_support.rb +5 -5
- data/build/cxx_tests.rb +3 -3
- data/build/documentation.rb +1 -1
- data/build/misc.rb +4 -37
- data/build/node_tests.rb +29 -0
- data/build/oxt_tests.rb +1 -1
- data/build/packaging.rb +29 -10
- data/build/preprocessor.rb +2 -1
- data/build/test_basics.rb +15 -6
- data/debian.template/locations.ini.template +1 -0
- data/debian.template/passenger.install.template +1 -0
- data/dev/copy_boost_headers.rb +7 -3
- data/dev/run_travis.sh +32 -16
- data/doc/Users guide Apache.idmap.txt +22 -34
- data/doc/Users guide Apache.txt +20 -234
- data/doc/Users guide Nginx.idmap.txt +84 -66
- data/doc/Users guide Nginx.txt +50 -1
- data/doc/Users guide Standalone.idmap.txt +74 -0
- data/doc/Users guide Standalone.txt +22 -9
- data/doc/Users guide.txt +51 -0
- data/doc/users_guide_snippets/environment_variables.txt +0 -3
- data/doc/users_guide_snippets/installation.txt +337 -380
- data/doc/users_guide_snippets/installation/run_installer.txt +58 -0
- data/doc/users_guide_snippets/installation/verify_running_epilogue.txt +6 -0
- data/doc/users_guide_snippets/support_information.txt +2 -9
- data/doc/users_guide_snippets/troubleshooting/default.txt +112 -0
- data/doc/users_guide_snippets/troubleshooting/rails.txt +56 -0
- data/doc/users_guide_snippets/where_to_get_support.txt +9 -0
- data/ext/apache2/Bucket.h +1 -1
- data/ext/apache2/Configuration.hpp +0 -44
- data/ext/apache2/CreateDirConfig.cpp +1 -1
- data/ext/apache2/CreateDirConfig.cpp.erb +1 -1
- data/ext/apache2/Hooks.cpp +28 -21
- data/ext/apache2/MergeDirConfig.cpp +1 -0
- data/ext/apache2/MergeDirConfig.cpp.erb +1 -1
- data/ext/apache2/SetHeaders.cpp +73 -0
- data/ext/apache2/SetHeaders.cpp.erb +88 -0
- data/ext/boost/algorithm/string/detail/find_format.hpp +5 -5
- data/ext/boost/algorithm/string/detail/find_format_all.hpp +5 -5
- data/ext/boost/algorithm/string/detail/finder.hpp +1 -1
- data/ext/boost/algorithm/string/formatter.hpp +2 -2
- data/ext/boost/assert.hpp +6 -1
- data/ext/boost/atomic.hpp +18 -0
- data/ext/boost/atomic/atomic.hpp +241 -0
- data/ext/boost/atomic/detail/base.hpp +585 -0
- data/ext/boost/atomic/detail/cas32strong.hpp +885 -0
- data/ext/boost/atomic/detail/cas32weak.hpp +947 -0
- data/ext/boost/atomic/detail/cas64strong.hpp +443 -0
- data/ext/boost/atomic/detail/config.hpp +54 -0
- data/ext/boost/atomic/detail/gcc-alpha.hpp +368 -0
- data/ext/boost/atomic/detail/gcc-armv6plus.hpp +252 -0
- data/ext/boost/atomic/detail/gcc-cas.hpp +157 -0
- data/ext/boost/atomic/detail/gcc-ppc.hpp +2850 -0
- data/ext/boost/atomic/detail/gcc-sparcv9.hpp +1259 -0
- data/ext/boost/atomic/detail/gcc-x86.hpp +1766 -0
- data/ext/boost/atomic/detail/generic-cas.hpp +206 -0
- data/ext/boost/atomic/detail/interlocked.hpp +200 -0
- data/ext/boost/atomic/detail/linux-arm.hpp +189 -0
- data/ext/boost/atomic/detail/lockpool.hpp +97 -0
- data/ext/boost/atomic/detail/platform.hpp +62 -0
- data/ext/boost/atomic/detail/type-classification.hpp +45 -0
- data/ext/boost/chrono/config.hpp +8 -3
- data/ext/boost/chrono/duration.hpp +9 -10
- data/ext/boost/chrono/system_clocks.hpp +1 -1
- data/ext/boost/chrono/time_point.hpp +4 -3
- data/ext/boost/config/auto_link.hpp +53 -52
- data/ext/boost/config/compiler/borland.hpp +1 -0
- data/ext/boost/config/compiler/clang.hpp +24 -1
- data/ext/boost/config/compiler/codegear.hpp +1 -0
- data/ext/boost/config/compiler/common_edg.hpp +1 -0
- data/ext/boost/config/compiler/cray.hpp +1 -0
- data/ext/boost/config/compiler/digitalmars.hpp +1 -0
- data/ext/boost/config/compiler/gcc.hpp +29 -3
- data/ext/boost/config/compiler/gcc_xml.hpp +2 -1
- data/ext/boost/config/compiler/hp_acc.hpp +1 -0
- data/ext/boost/config/compiler/intel.hpp +1 -1
- data/ext/boost/config/compiler/metrowerks.hpp +1 -0
- data/ext/boost/config/compiler/mpw.hpp +1 -0
- data/ext/boost/config/compiler/pathscale.hpp +1 -0
- data/ext/boost/config/compiler/pgi.hpp +1 -0
- data/ext/boost/config/compiler/sunpro_cc.hpp +1 -0
- data/ext/boost/config/compiler/vacpp.hpp +3 -2
- data/ext/boost/config/compiler/visualc.hpp +25 -11
- data/ext/boost/config/platform/vxworks.hpp +353 -15
- data/ext/boost/config/select_compiler_config.hpp +4 -4
- data/ext/boost/config/stdlib/dinkumware.hpp +10 -3
- data/ext/boost/config/stdlib/libstdcpp3.hpp +2 -1
- data/ext/boost/config/suffix.hpp +45 -19
- data/ext/boost/date_time/format_date_parser.hpp +1 -11
- data/ext/boost/date_time/strings_from_facet.hpp +5 -3
- data/ext/boost/detail/atomic_redef_macros.hpp +19 -0
- data/ext/boost/detail/atomic_undef_macros.hpp +39 -0
- data/ext/boost/detail/endian.hpp +52 -4
- data/ext/boost/detail/scoped_enum_emulation.hpp +10 -10
- data/ext/boost/detail/select_type.hpp +36 -0
- data/ext/boost/exception/current_exception_cast.hpp +1 -1
- data/ext/boost/exception/detail/error_info_impl.hpp +3 -5
- data/ext/boost/exception/detail/exception_ptr.hpp +3 -3
- data/ext/boost/exception/detail/is_output_streamable.hpp +1 -1
- data/ext/boost/exception/detail/object_hex_dump.hpp +1 -1
- data/ext/boost/exception/detail/type_info.hpp +1 -1
- data/ext/boost/exception/diagnostic_information.hpp +15 -14
- data/ext/boost/exception/exception.hpp +1 -1
- data/ext/boost/exception/get_error_info.hpp +1 -1
- data/ext/boost/exception/info.hpp +12 -13
- data/ext/boost/exception/to_string.hpp +6 -1
- data/ext/boost/exception/to_string_stub.hpp +9 -1
- data/ext/boost/foreach.hpp +5 -5
- data/ext/boost/function/function_template.hpp +6 -6
- data/ext/boost/functional/hash/detail/float_functions.hpp +90 -0
- data/ext/boost/functional/hash/detail/hash_float.hpp +11 -2
- data/ext/boost/functional/hash/extensions.hpp +14 -2
- data/ext/boost/functional/hash/hash.hpp +26 -5
- data/ext/boost/get_pointer.hpp +17 -2
- data/ext/boost/integer_traits.hpp +1 -1
- data/ext/boost/lexical_cast.hpp +615 -395
- data/ext/boost/libs/atomic/lockpool.cpp +24 -0
- data/ext/boost/libs/system/src/error_code.cpp +25 -18
- data/ext/boost/libs/thread/src/future.cpp +7 -5
- data/ext/boost/libs/thread/src/pthread/once.cpp +9 -3
- data/ext/boost/libs/thread/src/pthread/once_atomic.cpp +90 -0
- data/ext/boost/libs/thread/src/pthread/thread.cpp +129 -95
- data/ext/boost/libs/thread/src/pthread/timeconv.inl +20 -1
- data/ext/boost/limits.hpp +1 -1
- data/ext/boost/math/policies/policy.hpp +10 -0
- data/ext/boost/math/special_functions/detail/round_fwd.hpp +17 -4
- data/ext/boost/math/special_functions/fpclassify.hpp +114 -45
- data/ext/boost/math/special_functions/math_fwd.hpp +195 -83
- data/ext/boost/math/special_functions/sign.hpp +13 -8
- data/ext/boost/math/tools/config.hpp +38 -16
- data/ext/boost/move/algorithm.hpp +275 -0
- data/ext/boost/move/core.hpp +332 -0
- data/ext/boost/move/detail/config_begin.hpp +23 -0
- data/ext/boost/move/detail/config_end.hpp +20 -0
- data/ext/boost/move/detail/meta_utils.hpp +158 -0
- data/ext/boost/move/iterator.hpp +298 -0
- data/ext/boost/move/move.hpp +10 -1256
- data/ext/boost/move/traits.hpp +142 -0
- data/ext/boost/move/utility.hpp +194 -0
- data/ext/boost/mpl/assert.hpp +72 -4
- data/ext/boost/noncopyable.hpp +15 -3
- data/ext/boost/pointer_to_other.hpp +55 -0
- data/ext/boost/range/concepts.hpp +4 -4
- data/ext/boost/range/detail/extract_optional_type.hpp +1 -1
- data/ext/boost/range/empty.hpp +1 -1
- data/ext/boost/range/iterator_range_core.hpp +4 -1
- data/ext/boost/range/iterator_range_io.hpp +2 -2
- data/ext/boost/ratio/config.hpp +6 -0
- data/ext/boost/ratio/detail/overflow_helpers.hpp +2 -2
- data/ext/boost/smart_ptr/allocate_shared_array.hpp +250 -0
- data/ext/boost/smart_ptr/detail/allocate_array_helper.hpp +169 -0
- data/ext/boost/smart_ptr/detail/array_deleter.hpp +124 -0
- data/ext/boost/smart_ptr/detail/array_traits.hpp +53 -0
- data/ext/boost/smart_ptr/detail/array_utility.hpp +178 -0
- data/ext/boost/smart_ptr/detail/make_array_helper.hpp +157 -0
- data/ext/boost/smart_ptr/detail/operator_bool.hpp +16 -9
- data/ext/boost/smart_ptr/detail/shared_count.hpp +78 -7
- data/ext/boost/smart_ptr/detail/sp_convertible.hpp +15 -0
- data/ext/boost/smart_ptr/detail/sp_counted_base.hpp +12 -6
- data/ext/boost/smart_ptr/detail/sp_counted_base_acc_ia64.hpp +1 -0
- data/ext/boost/smart_ptr/detail/sp_counted_base_aix.hpp +1 -0
- data/ext/boost/smart_ptr/detail/sp_counted_base_cw_ppc.hpp +1 -0
- data/ext/boost/smart_ptr/detail/sp_counted_base_cw_x86.hpp +1 -0
- data/ext/boost/smart_ptr/detail/sp_counted_base_gcc_ia64.hpp +1 -0
- data/ext/boost/smart_ptr/detail/sp_counted_base_gcc_mips.hpp +1 -0
- data/ext/boost/smart_ptr/detail/sp_counted_base_gcc_ppc.hpp +1 -0
- data/ext/boost/smart_ptr/detail/sp_counted_base_gcc_sparc.hpp +1 -0
- data/ext/boost/smart_ptr/detail/sp_counted_base_gcc_x86.hpp +1 -0
- data/ext/boost/smart_ptr/detail/sp_counted_base_nt.hpp +1 -0
- data/ext/boost/smart_ptr/detail/sp_counted_base_pt.hpp +1 -0
- data/ext/boost/smart_ptr/detail/sp_counted_base_snc_ps3.hpp +162 -0
- data/ext/boost/smart_ptr/detail/sp_counted_base_solaris.hpp +1 -0
- data/ext/boost/smart_ptr/detail/sp_counted_base_spin.hpp +1 -0
- data/ext/boost/smart_ptr/detail/sp_counted_base_sync.hpp +1 -0
- data/ext/boost/smart_ptr/detail/sp_counted_base_vacpp_ppc.hpp +1 -0
- data/ext/boost/smart_ptr/detail/sp_counted_impl.hpp +15 -0
- data/ext/boost/smart_ptr/detail/sp_forward.hpp +39 -0
- data/ext/boost/smart_ptr/detail/sp_has_sync.hpp +19 -3
- data/ext/boost/smart_ptr/detail/sp_if_array.hpp +31 -0
- data/ext/boost/smart_ptr/detail/sp_nullptr_t.hpp +45 -0
- data/ext/boost/smart_ptr/detail/spinlock_gcc_arm.hpp +5 -12
- data/ext/boost/smart_ptr/enable_shared_from_this.hpp +4 -4
- data/ext/boost/smart_ptr/make_shared.hpp +5 -1060
- data/ext/boost/smart_ptr/make_shared_array.hpp +247 -0
- data/ext/boost/smart_ptr/make_shared_object.hpp +1128 -0
- data/ext/boost/smart_ptr/scoped_array.hpp +32 -7
- data/ext/boost/smart_ptr/scoped_ptr.hpp +31 -5
- data/ext/boost/smart_ptr/shared_array.hpp +135 -20
- data/ext/boost/smart_ptr/shared_ptr.hpp +444 -126
- data/ext/boost/smart_ptr/weak_ptr.hpp +39 -28
- data/ext/boost/static_assert.hpp +74 -17
- data/ext/boost/system/error_code.hpp +76 -68
- data/ext/boost/system/system_error.hpp +5 -1
- data/ext/boost/thread/barrier.hpp +6 -2
- data/ext/boost/thread/completion_latch.hpp +233 -0
- data/ext/boost/thread/condition.hpp +6 -1
- data/ext/boost/thread/detail/async_func.hpp +571 -0
- data/ext/boost/thread/detail/config.hpp +248 -40
- data/ext/boost/thread/detail/counter.hpp +93 -0
- data/ext/boost/thread/detail/delete.hpp +12 -0
- data/ext/boost/thread/detail/invoke.hpp +1351 -0
- data/ext/boost/thread/detail/is_convertible.hpp +48 -0
- data/ext/boost/thread/detail/lockable_wrapper.hpp +45 -0
- data/ext/boost/thread/detail/log.hpp +83 -0
- data/ext/boost/thread/detail/make_tuple_indices.hpp +224 -0
- data/ext/boost/thread/detail/move.hpp +32 -16
- data/ext/boost/thread/detail/thread.hpp +236 -41
- data/ext/boost/thread/detail/thread_group.hpp +55 -9
- data/ext/boost/thread/detail/thread_interruption.hpp +4 -1
- data/ext/boost/thread/exceptions.hpp +2 -0
- data/ext/boost/thread/externally_locked.hpp +351 -0
- data/ext/boost/thread/externally_locked_stream.hpp +170 -0
- data/ext/boost/thread/future.hpp +2517 -455
- data/ext/boost/thread/future_error_code.hpp +61 -0
- data/ext/boost/thread/is_locked_by_this_thread.hpp +39 -0
- data/ext/boost/thread/latch.hpp +142 -0
- data/ext/boost/thread/lock_algorithms.hpp +468 -0
- data/ext/boost/thread/lock_concepts.hpp +197 -0
- data/ext/boost/thread/lock_factories.hpp +78 -0
- data/ext/boost/thread/lock_guard.hpp +88 -0
- data/ext/boost/thread/lock_options.hpp +31 -0
- data/ext/boost/thread/lock_traits.hpp +45 -0
- data/ext/boost/thread/lock_types.hpp +1226 -0
- data/ext/boost/thread/lockable_adapter.hpp +226 -0
- data/ext/boost/thread/lockable_concepts.hpp +157 -0
- data/ext/boost/thread/lockable_traits.hpp +207 -0
- data/ext/boost/thread/locks.hpp +5 -1816
- data/ext/boost/thread/mutex.hpp +33 -1
- data/ext/boost/thread/null_mutex.hpp +243 -0
- data/ext/boost/thread/once.hpp +10 -1
- data/ext/boost/thread/poly_lockable.hpp +68 -0
- data/ext/boost/thread/poly_lockable_adapter.hpp +89 -0
- data/ext/boost/thread/poly_shared_lockable.hpp +135 -0
- data/ext/boost/thread/poly_shared_lockable_adapter.hpp +170 -0
- data/ext/boost/thread/pthread/condition_variable.hpp +74 -26
- data/ext/boost/thread/pthread/condition_variable_fwd.hpp +54 -27
- data/ext/boost/thread/pthread/mutex.hpp +101 -38
- data/ext/boost/thread/pthread/once.hpp +459 -44
- data/ext/boost/thread/pthread/once_atomic.hpp +313 -0
- data/ext/boost/thread/pthread/recursive_mutex.hpp +19 -10
- data/ext/boost/thread/pthread/shared_mutex.hpp +226 -61
- data/ext/boost/thread/pthread/shared_mutex_assert.hpp +724 -0
- data/ext/boost/thread/pthread/thread_data.hpp +53 -50
- data/ext/boost/thread/pthread/timespec.hpp +96 -12
- data/ext/boost/thread/recursive_mutex.hpp +44 -1
- data/ext/boost/thread/reverse_lock.hpp +3 -2
- data/ext/boost/thread/scoped_thread.hpp +285 -0
- data/ext/boost/thread/shared_lock_guard.hpp +2 -1
- data/ext/boost/thread/shared_mutex.hpp +23 -0
- data/ext/boost/thread/strict_lock.hpp +235 -0
- data/ext/boost/thread/sync_bounded_queue.hpp +594 -0
- data/ext/boost/thread/sync_queue.hpp +516 -0
- data/ext/boost/thread/synchronized_value.hpp +1001 -0
- data/ext/boost/thread/testable_mutex.hpp +148 -0
- data/ext/boost/thread/thread.hpp +1 -13
- data/ext/boost/thread/thread_functors.hpp +57 -0
- data/ext/boost/thread/thread_guard.hpp +46 -0
- data/ext/boost/thread/thread_only.hpp +29 -0
- data/ext/boost/thread/v2/shared_mutex.hpp +1062 -0
- data/ext/boost/thread/v2/thread.hpp +37 -10
- data/ext/boost/thread/xtime.hpp +2 -1
- data/ext/boost/token_functions.hpp +16 -16
- data/ext/boost/type_traits/add_lvalue_reference.hpp +26 -0
- data/ext/boost/type_traits/add_reference.hpp +1 -1
- data/ext/boost/type_traits/add_rvalue_reference.hpp +4 -4
- data/ext/boost/type_traits/aligned_storage.hpp +13 -0
- data/ext/boost/type_traits/common_type.hpp +11 -12
- data/ext/boost/type_traits/config.hpp +1 -1
- data/ext/boost/type_traits/detail/common_type_imp.hpp +1 -1
- data/ext/boost/type_traits/detail/has_binary_operator.hpp +1 -1
- data/ext/boost/type_traits/detail/is_function_ptr_tester.hpp +1 -1
- data/ext/boost/type_traits/has_left_shift.hpp +49 -0
- data/ext/boost/type_traits/has_right_shift.hpp +49 -0
- data/ext/boost/type_traits/has_trivial_move_assign.hpp +57 -0
- data/ext/boost/type_traits/has_trivial_move_constructor.hpp +57 -0
- data/ext/boost/type_traits/intrinsics.hpp +18 -2
- data/ext/boost/type_traits/is_abstract.hpp +1 -1
- data/ext/boost/type_traits/is_array.hpp +1 -1
- data/ext/boost/type_traits/is_const.hpp +1 -1
- data/ext/boost/type_traits/is_convertible.hpp +78 -17
- data/ext/boost/type_traits/is_function.hpp +6 -1
- data/ext/boost/type_traits/is_integral.hpp +6 -1
- data/ext/boost/type_traits/is_nothrow_move_assignable.hpp +84 -0
- data/ext/boost/type_traits/is_nothrow_move_constructible.hpp +84 -0
- data/ext/boost/type_traits/is_pod.hpp +3 -1
- data/ext/boost/type_traits/is_rvalue_reference.hpp +1 -1
- data/ext/boost/type_traits/is_volatile.hpp +1 -1
- data/ext/boost/type_traits/make_signed.hpp +153 -0
- data/ext/boost/type_traits/make_unsigned.hpp +16 -0
- data/ext/boost/type_traits/remove_const.hpp +1 -1
- data/ext/boost/type_traits/remove_cv.hpp +1 -1
- data/ext/boost/type_traits/remove_reference.hpp +1 -1
- data/ext/boost/type_traits/remove_volatile.hpp +1 -1
- data/ext/boost/unordered/detail/allocate.hpp +1120 -0
- data/ext/boost/unordered/detail/buckets.hpp +876 -0
- data/ext/boost/unordered/detail/equivalent.hpp +680 -0
- data/ext/boost/unordered/detail/extract_key.hpp +183 -0
- data/ext/boost/unordered/detail/fwd.hpp +23 -0
- data/ext/boost/unordered/detail/table.hpp +861 -0
- data/ext/boost/unordered/detail/unique.hpp +622 -0
- data/ext/boost/unordered/detail/util.hpp +260 -0
- data/ext/boost/unordered/unordered_map.hpp +1652 -0
- data/ext/boost/unordered/unordered_map_fwd.hpp +65 -0
- data/ext/boost/unordered/unordered_set.hpp +1549 -0
- data/ext/boost/unordered/unordered_set_fwd.hpp +63 -0
- data/ext/boost/unordered_map.hpp +18 -0
- data/ext/boost/unordered_set.hpp +18 -0
- data/ext/boost/utility/addressof.hpp +2 -2
- data/ext/boost/utility/result_of.hpp +8 -1
- data/ext/boost/version.hpp +2 -2
- data/ext/common/Account.h +1 -1
- data/ext/common/AccountsDatabase.h +1 -1
- data/ext/common/AgentsStarter.cpp +3 -1
- data/ext/common/AgentsStarter.h +2 -2
- data/ext/common/ApplicationPool2/AppTypes.cpp +24 -6
- data/ext/common/ApplicationPool2/AppTypes.h +17 -8
- data/ext/common/ApplicationPool2/Common.h +12 -12
- data/ext/common/ApplicationPool2/DirectSpawner.h +2 -2
- data/ext/common/ApplicationPool2/DummySpawner.h +3 -3
- data/ext/common/ApplicationPool2/Group.h +6 -6
- data/ext/common/ApplicationPool2/Implementation.cpp +19 -19
- data/ext/common/ApplicationPool2/PipeWatcher.h +5 -5
- data/ext/common/ApplicationPool2/Pool.h +21 -21
- data/ext/common/ApplicationPool2/Process.h +6 -6
- data/ext/common/ApplicationPool2/Session.h +1 -1
- data/ext/common/ApplicationPool2/SmartSpawner.h +24 -12
- data/ext/common/ApplicationPool2/Socket.h +2 -2
- data/ext/common/ApplicationPool2/Spawner.h +64 -14
- data/ext/common/ApplicationPool2/SpawnerFactory.h +7 -7
- data/ext/common/ApplicationPool2/SuperGroup.h +5 -5
- data/ext/common/BackgroundEventLoop.cpp +4 -4
- data/ext/common/BackgroundEventLoop.h +1 -1
- data/ext/common/Constants.h +13 -1
- data/ext/common/EventedBufferedInput.h +8 -8
- data/ext/common/Exceptions.cpp +71 -0
- data/ext/common/Exceptions.h +60 -7
- data/ext/common/FileDescriptor.h +4 -4
- data/ext/common/MessageClient.h +1 -1
- data/ext/common/MessageServer.h +5 -5
- data/ext/common/MultiLibeio.cpp +3 -3
- data/ext/common/MultiLibeio.h +2 -2
- data/ext/common/RandomGenerator.h +11 -11
- data/ext/common/ResourceLocator.h +8 -1
- data/ext/common/SafeLibev.h +12 -12
- data/ext/common/ServerInstanceDir.h +11 -3
- data/ext/common/UnionStation.h +10 -10
- data/ext/common/Utils.cpp +11 -13
- data/ext/common/Utils.h +9 -9
- data/ext/common/Utils/BlockingQueue.h +10 -10
- data/ext/common/Utils/BufferedIO.h +1 -1
- data/ext/common/Utils/CachedFileStat.hpp +2 -2
- data/ext/common/Utils/FileChangeChecker.h +1 -1
- data/ext/common/Utils/HashMap.h +13 -4
- data/ext/common/Utils/IOUtils.cpp +33 -10
- data/ext/common/Utils/IniFile.h +3 -3
- data/ext/common/Utils/Lock.h +2 -2
- data/ext/common/Utils/MessagePassing.h +10 -10
- data/ext/common/Utils/ProcessMetricsCollector.h +24 -6
- data/ext/common/Utils/ScopeGuard.h +5 -5
- data/ext/common/Utils/jsoncpp.cpp +2 -0
- data/ext/common/agents/HelperAgent/FileBackedPipe.h +26 -26
- data/ext/common/agents/HelperAgent/Main.cpp +18 -18
- data/ext/common/agents/HelperAgent/RequestHandler.cpp +4 -4
- data/ext/common/agents/HelperAgent/RequestHandler.h +30 -21
- data/ext/common/agents/LoggingAgent/AdminController.h +1 -1
- data/ext/common/agents/LoggingAgent/FilterSupport.h +13 -11
- data/ext/common/agents/LoggingAgent/LoggingServer.h +11 -11
- data/ext/common/agents/LoggingAgent/Main.cpp +9 -9
- data/ext/common/agents/LoggingAgent/RemoteSender.h +3 -3
- data/ext/common/agents/SpawnPreparer.cpp +1 -0
- data/ext/common/agents/Watchdog/AgentWatcher.cpp +8 -7
- data/ext/common/agents/Watchdog/Main.cpp +81 -73
- data/ext/common/agents/Watchdog/ServerInstanceDirToucher.cpp +1 -1
- data/ext/libev/Changes +57 -0
- data/ext/libev/LICENSE +2 -1
- data/ext/libev/Makefile.in +110 -50
- data/ext/libev/README +8 -8
- data/ext/libev/aclocal.m4 +1503 -861
- data/ext/libev/config.guess +290 -304
- data/ext/libev/config.sub +77 -198
- data/ext/libev/configure +1735 -890
- data/ext/libev/configure.ac +3 -2
- data/ext/libev/ev++.h +6 -6
- data/ext/libev/ev.c +541 -214
- data/ext/libev/ev.h +106 -100
- data/ext/libev/ev_epoll.c +1 -1
- data/ext/libev/ev_kqueue.c +20 -4
- data/ext/libev/ev_vars.h +15 -16
- data/ext/libev/ev_win32.c +12 -2
- data/ext/libev/ev_wrap.h +162 -160
- data/ext/libev/event.c +29 -6
- data/ext/libev/event.h +9 -2
- data/ext/libev/ltmain.sh +2632 -1384
- data/ext/nginx/ConfigurationCommands.c +1 -1
- data/ext/nginx/ConfigurationCommands.c.erb +3 -1
- data/ext/nginx/ContentHandler.c +25 -2
- data/ext/nginx/CreateLocationConfig.c +1 -0
- data/ext/nginx/CreateLocationConfig.c.erb +1 -1
- data/ext/nginx/MergeLocationConfig.c +1 -0
- data/ext/nginx/MergeLocationConfig.c.erb +1 -1
- data/ext/nginx/config +12 -0
- data/ext/oxt/dynamic_thread_group.hpp +7 -4
- data/ext/oxt/system_calls.cpp +5 -1
- data/ext/oxt/system_calls.hpp +3 -0
- data/helper-scripts/node-loader.js +117 -249
- data/lib/phusion_passenger.rb +27 -5
- data/lib/phusion_passenger/abstract_installer.rb +104 -9
- data/lib/phusion_passenger/admin_tools/memory_stats.rb +10 -9
- data/lib/phusion_passenger/apache2/config_options.rb +6 -3
- data/lib/phusion_passenger/common_library.rb +7 -1
- data/lib/phusion_passenger/constants.rb +6 -0
- data/lib/phusion_passenger/loader_shared_helpers.rb +7 -4
- data/lib/phusion_passenger/nginx/config_options.rb +2 -1
- data/lib/phusion_passenger/packaging.rb +3 -0
- data/lib/phusion_passenger/platform_info/apache.rb +43 -6
- data/lib/phusion_passenger/platform_info/apache_detector.rb +15 -5
- data/lib/phusion_passenger/platform_info/compiler.rb +167 -32
- data/lib/phusion_passenger/platform_info/cxx_portability.rb +133 -77
- data/lib/phusion_passenger/platform_info/depcheck.rb +17 -7
- data/lib/phusion_passenger/platform_info/depcheck_specs/apache2.rb +3 -3
- data/lib/phusion_passenger/platform_info/depcheck_specs/compiler_toolchain.rb +4 -4
- data/lib/phusion_passenger/platform_info/depcheck_specs/ruby.rb +5 -6
- data/lib/phusion_passenger/platform_info/linux.rb +2 -1
- data/lib/phusion_passenger/platform_info/operating_system.rb +1 -1
- data/lib/phusion_passenger/platform_info/ruby.rb +18 -3
- data/lib/phusion_passenger/standalone/runtime_installer.rb +6 -2
- data/lib/phusion_passenger/standalone/start_command.rb +8 -2
- data/lib/phusion_passenger/utils/ansi_colors.rb +9 -0
- data/lib/phusion_passenger/utils/hosts_file_parser.rb +4 -2
- data/node_lib/phusion_passenger/httplib_emulation.js +141 -0
- data/node_lib/phusion_passenger/line_reader.js +154 -0
- data/node_lib/phusion_passenger/request_handler.js +65 -0
- data/node_lib/phusion_passenger/session_protocol_parser.js +113 -0
- data/resources/templates/apache2/deployment_example.txt.erb +2 -1
- data/resources/templates/apache2/installing_against_a_different_apache.txt.erb +14 -0
- data/resources/templates/apache2/multiple_apache_installations_detected.txt.erb +15 -0
- data/resources/templates/apache2/possible_solutions_for_compilation_and_installation_problems.txt.erb +4 -5
- data/resources/templates/general_error_with_html.html.template +1 -1
- data/resources/templates/installer_common/gem_install_permission_problems.txt.erb +17 -0
- data/resources/templates/installer_common/low_amount_of_memory_warning.txt.erb +6 -4
- data/resources/templates/installer_common/world_inaccessible_directories.txt.erb +16 -0
- data/resources/templates/nginx/deployment_example.txt.erb +2 -1
- data/resources/templates/nginx/possible_solutions_for_compilation_and_installation_problems.txt.erb +4 -5
- data/resources/templates/standalone/config.erb +1 -0
- data/test/cxx/ApplicationPool2/DirectSpawnerTest.cpp +3 -3
- data/test/cxx/ApplicationPool2/PoolTest.cpp +4 -4
- data/test/cxx/ApplicationPool2/ProcessTest.cpp +5 -5
- data/test/cxx/ApplicationPool2/SmartSpawnerTest.cpp +5 -5
- data/test/cxx/ApplicationPool2/SpawnerTestCases.cpp +1 -1
- data/test/cxx/EventedBufferedInputTest.cpp +6 -6
- data/test/cxx/FileBackedPipeTest.cpp +1 -1
- data/test/cxx/MessagePassingTest.cpp +1 -1
- data/test/cxx/MessageServerTest.cpp +4 -4
- data/test/cxx/RequestHandlerTest.cpp +7 -7
- data/test/cxx/UnionStationTest.cpp +2 -2
- data/test/node/line_reader_spec.js +338 -0
- data/test/node/spec_helper.js +27 -0
- data/test/ruby/standalone/runtime_installer_spec.rb +2 -1
- metadata +131 -22
- metadata.gz.asc +7 -7
- data/ext/boost/functional/hash/detail/container_fwd_0x.hpp +0 -29
- data/ext/boost/lambda/core.hpp +0 -79
- data/ext/boost/lambda/detail/actions.hpp +0 -174
- data/ext/boost/lambda/detail/arity_code.hpp +0 -110
- data/ext/boost/lambda/detail/function_adaptors.hpp +0 -789
- data/ext/boost/lambda/detail/is_instance_of.hpp +0 -104
- data/ext/boost/lambda/detail/lambda_config.hpp +0 -48
- data/ext/boost/lambda/detail/lambda_functor_base.hpp +0 -615
- data/ext/boost/lambda/detail/lambda_functors.hpp +0 -324
- data/ext/boost/lambda/detail/lambda_fwd.hpp +0 -74
- data/ext/boost/lambda/detail/lambda_traits.hpp +0 -578
- data/ext/boost/lambda/detail/member_ptr.hpp +0 -737
- data/ext/boost/lambda/detail/operator_actions.hpp +0 -139
- data/ext/boost/lambda/detail/operator_lambda_func_base.hpp +0 -271
- data/ext/boost/lambda/detail/operator_return_type_traits.hpp +0 -917
- data/ext/boost/lambda/detail/operators.hpp +0 -370
- data/ext/boost/lambda/detail/ret.hpp +0 -325
- data/ext/boost/lambda/detail/return_type_traits.hpp +0 -282
- data/ext/boost/lambda/detail/select_functions.hpp +0 -74
- data/ext/boost/lambda/lambda.hpp +0 -34
@@ -60,7 +60,7 @@ using namespace oxt;
|
|
60
60
|
* Except for otherwise documented parts, this class is not thread-safe,
|
61
61
|
* so only access within ApplicationPool lock.
|
62
62
|
*/
|
63
|
-
class Group: public enable_shared_from_this<Group> {
|
63
|
+
class Group: public boost::enable_shared_from_this<Group> {
|
64
64
|
private:
|
65
65
|
friend class Pool;
|
66
66
|
friend class SuperGroup;
|
@@ -90,7 +90,7 @@ private:
|
|
90
90
|
* Groups.
|
91
91
|
* Read-only; only set during initialization.
|
92
92
|
*/
|
93
|
-
weak_ptr<SuperGroup> superGroup;
|
93
|
+
boost::weak_ptr<SuperGroup> superGroup;
|
94
94
|
CachedFileStat cstat;
|
95
95
|
FileChangeChecker fileChangeChecker;
|
96
96
|
string restartFile;
|
@@ -150,7 +150,7 @@ private:
|
|
150
150
|
* whether any of the Processes can be shut down.
|
151
151
|
*/
|
152
152
|
bool detachedProcessesCheckerActive;
|
153
|
-
condition_variable detachedProcessesCheckerCond;
|
153
|
+
boost::condition_variable detachedProcessesCheckerCond;
|
154
154
|
Callback shutdownCallback;
|
155
155
|
GroupPtr selfPointer;
|
156
156
|
|
@@ -329,7 +329,7 @@ private:
|
|
329
329
|
return true;
|
330
330
|
} else {
|
331
331
|
P_WARN("Request queue is full. Returning an error");
|
332
|
-
callback(SessionPtr(), make_shared<RequestQueueFullException>());
|
332
|
+
callback(SessionPtr(), boost::make_shared<RequestQueueFullException>());
|
333
333
|
return false;
|
334
334
|
}
|
335
335
|
}
|
@@ -721,14 +721,14 @@ public:
|
|
721
721
|
}
|
722
722
|
|
723
723
|
if (OXT_UNLIKELY(newOptions.noop)) {
|
724
|
-
ProcessPtr process = make_shared<Process>(SafeLibevPtr(),
|
724
|
+
ProcessPtr process = boost::make_shared<Process>(SafeLibevPtr(),
|
725
725
|
0, string(), string(),
|
726
726
|
FileDescriptor(), FileDescriptor(),
|
727
727
|
SocketListPtr(), 0, 0);
|
728
728
|
process->dummy = true;
|
729
729
|
process->requiresShutdown = false;
|
730
730
|
process->setGroup(shared_from_this());
|
731
|
-
return make_shared<Session>(process, (Socket *) NULL);
|
731
|
+
return boost::make_shared<Session>(process, (Socket *) NULL);
|
732
732
|
}
|
733
733
|
|
734
734
|
if (OXT_UNLIKELY(enabledCount == 0)) {
|
@@ -46,7 +46,7 @@ using namespace oxt;
|
|
46
46
|
do { \
|
47
47
|
const klass *ep = dynamic_cast<const klass *>(&e); \
|
48
48
|
if (ep != NULL) { \
|
49
|
-
return make_shared<klass>(*ep); \
|
49
|
+
return boost::make_shared<klass>(*ep); \
|
50
50
|
} \
|
51
51
|
} while (false)
|
52
52
|
|
@@ -81,7 +81,7 @@ copyException(const tracable_exception &e) {
|
|
81
81
|
|
82
82
|
TRY_COPY_EXCEPTION(boost::thread_interrupted);
|
83
83
|
|
84
|
-
return make_shared<tracable_exception>(e);
|
84
|
+
return boost::make_shared<tracable_exception>(e);
|
85
85
|
}
|
86
86
|
|
87
87
|
#define TRY_RETHROW_EXCEPTION(klass) \
|
@@ -157,7 +157,7 @@ SuperGroup::generateSecret() const {
|
|
157
157
|
}
|
158
158
|
|
159
159
|
void
|
160
|
-
SuperGroup::createInterruptableThread(const function<void ()> &func, const string &name,
|
160
|
+
SuperGroup::createInterruptableThread(const boost::function<void ()> &func, const string &name,
|
161
161
|
unsigned int stackSize)
|
162
162
|
{
|
163
163
|
getPool()->interruptableThreads.create_thread(func, name, stackSize);
|
@@ -179,7 +179,7 @@ SuperGroup::realDoInitialize(const Options &options, unsigned int generation) {
|
|
179
179
|
string message = "The directory " +
|
180
180
|
options.appRoot +
|
181
181
|
" does not seem to contain a web application.";
|
182
|
-
exception = make_shared<SpawnException>(
|
182
|
+
exception = boost::make_shared<SpawnException>(
|
183
183
|
message, message, false);
|
184
184
|
}
|
185
185
|
|
@@ -193,7 +193,7 @@ SuperGroup::realDoInitialize(const Options &options, unsigned int generation) {
|
|
193
193
|
debug->messages->recv("Proceed with initializing SuperGroup");
|
194
194
|
}
|
195
195
|
|
196
|
-
unique_lock<boost::mutex> lock(getPoolSyncher(pool));
|
196
|
+
boost::unique_lock<boost::mutex> lock(getPoolSyncher(pool));
|
197
197
|
this_thread::disable_interruption di;
|
198
198
|
this_thread::disable_syscall_interruption dsi;
|
199
199
|
NOT_EXPECTING_EXCEPTIONS();
|
@@ -221,7 +221,7 @@ SuperGroup::realDoInitialize(const Options &options, unsigned int generation) {
|
|
221
221
|
} else {
|
222
222
|
for (it = componentInfos.begin(); it != componentInfos.end(); it++) {
|
223
223
|
const ComponentInfo &info = *it;
|
224
|
-
GroupPtr group = make_shared<Group>(shared_from_this(),
|
224
|
+
GroupPtr group = boost::make_shared<Group>(shared_from_this(),
|
225
225
|
options, info);
|
226
226
|
groups.push_back(group);
|
227
227
|
if (info.isDefault) {
|
@@ -254,7 +254,7 @@ SuperGroup::realDoRestart(const Options &options, unsigned int generation) {
|
|
254
254
|
debug->messages->recv("Proceed with restarting SuperGroup");
|
255
255
|
}
|
256
256
|
|
257
|
-
unique_lock<boost::mutex> lock(getPoolSyncher(pool));
|
257
|
+
boost::unique_lock<boost::mutex> lock(getPoolSyncher(pool));
|
258
258
|
if (OXT_UNLIKELY(this->generation != generation)) {
|
259
259
|
return;
|
260
260
|
}
|
@@ -284,7 +284,7 @@ SuperGroup::realDoRestart(const Options &options, unsigned int generation) {
|
|
284
284
|
} else {
|
285
285
|
// This is not an existing group but a new one,
|
286
286
|
// so create it.
|
287
|
-
group = make_shared<Group>(shared_from_this(),
|
287
|
+
group = boost::make_shared<Group>(shared_from_this(),
|
288
288
|
options, info);
|
289
289
|
newGroups.push_back(group);
|
290
290
|
}
|
@@ -330,7 +330,7 @@ Group::Group(const SuperGroupPtr &_superGroup, const Options &options, const Com
|
|
330
330
|
lifeStatus = ALIVE;
|
331
331
|
if (options.restartDir.empty()) {
|
332
332
|
restartFile = options.appRoot + "/tmp/restart.txt";
|
333
|
-
alwaysRestartFile = options.appRoot + "/always_restart.txt";
|
333
|
+
alwaysRestartFile = options.appRoot + "/tmp/always_restart.txt";
|
334
334
|
} else if (options.restartDir[0] == '/') {
|
335
335
|
restartFile = options.restartDir + "/restart.txt";
|
336
336
|
alwaysRestartFile = options.restartDir + "/always_restart.txt";
|
@@ -364,7 +364,7 @@ Group::onSessionInitiateFailure(const ProcessPtr &process, Session *session) {
|
|
364
364
|
TRACE_POINT();
|
365
365
|
// Standard resource management boilerplate stuff...
|
366
366
|
PoolPtr pool = getPool();
|
367
|
-
unique_lock<boost::mutex> lock(pool->syncher);
|
367
|
+
boost::unique_lock<boost::mutex> lock(pool->syncher);
|
368
368
|
assert(process->isAlive());
|
369
369
|
assert(isAlive() || getLifeStatus() == SHUTTING_DOWN);
|
370
370
|
|
@@ -384,7 +384,7 @@ Group::onSessionClose(const ProcessPtr &process, Session *session) {
|
|
384
384
|
TRACE_POINT();
|
385
385
|
// Standard resource management boilerplate stuff...
|
386
386
|
PoolPtr pool = getPool();
|
387
|
-
unique_lock<boost::mutex> lock(pool->syncher);
|
387
|
+
boost::unique_lock<boost::mutex> lock(pool->syncher);
|
388
388
|
assert(process->isAlive());
|
389
389
|
assert(isAlive() || getLifeStatus() == SHUTTING_DOWN);
|
390
390
|
|
@@ -480,7 +480,7 @@ void
|
|
480
480
|
Group::requestOOBW(const ProcessPtr &process) {
|
481
481
|
// Standard resource management boilerplate stuff...
|
482
482
|
PoolPtr pool = getPool();
|
483
|
-
unique_lock<boost::mutex> lock(pool->syncher);
|
483
|
+
boost::unique_lock<boost::mutex> lock(pool->syncher);
|
484
484
|
if (isAlive() && process->isAlive() && process->oobwStatus == Process::OOBW_NOT_ACTIVE) {
|
485
485
|
process->oobwStatus = Process::OOBW_REQUESTED;
|
486
486
|
}
|
@@ -524,7 +524,7 @@ Group::lockAndMaybeInitiateOobw(const ProcessPtr &process, DisableResult result,
|
|
524
524
|
|
525
525
|
// Standard resource management boilerplate stuff...
|
526
526
|
PoolPtr pool = getPool();
|
527
|
-
unique_lock<boost::mutex> lock(pool->syncher);
|
527
|
+
boost::unique_lock<boost::mutex> lock(pool->syncher);
|
528
528
|
if (OXT_UNLIKELY(!process->isAlive() || !isAlive())) {
|
529
529
|
return;
|
530
530
|
}
|
@@ -625,7 +625,7 @@ Group::spawnThreadOOBWRequest(GroupPtr self, ProcessPtr process) {
|
|
625
625
|
UPDATE_TRACE_POINT();
|
626
626
|
{
|
627
627
|
// Standard resource management boilerplate stuff...
|
628
|
-
unique_lock<boost::mutex> lock(pool->syncher);
|
628
|
+
boost::unique_lock<boost::mutex> lock(pool->syncher);
|
629
629
|
if (OXT_UNLIKELY(!process->isAlive()
|
630
630
|
|| process->enabled == Process::DETACHED
|
631
631
|
|| !isAlive()))
|
@@ -696,7 +696,7 @@ Group::spawnThreadOOBWRequest(GroupPtr self, ProcessPtr process) {
|
|
696
696
|
{
|
697
697
|
// Standard resource management boilerplate stuff...
|
698
698
|
PoolPtr pool = getPool();
|
699
|
-
unique_lock<boost::mutex> lock(pool->syncher);
|
699
|
+
boost::unique_lock<boost::mutex> lock(pool->syncher);
|
700
700
|
if (OXT_UNLIKELY(!process->isAlive() || !isAlive())) {
|
701
701
|
return;
|
702
702
|
}
|
@@ -798,7 +798,7 @@ Group::spawnThreadRealMain(const SpawnerPtr &spawner, const Options &options, un
|
|
798
798
|
|
799
799
|
UPDATE_TRACE_POINT();
|
800
800
|
ScopeGuard guard(boost::bind(Process::forceTriggerShutdownAndCleanup, process));
|
801
|
-
unique_lock<boost::mutex> lock(pool->syncher);
|
801
|
+
boost::unique_lock<boost::mutex> lock(pool->syncher);
|
802
802
|
|
803
803
|
if (!isAlive()) {
|
804
804
|
if (process != NULL) {
|
@@ -1006,7 +1006,7 @@ void
|
|
1006
1006
|
Group::detachedProcessesCheckerMain(GroupPtr self) {
|
1007
1007
|
TRACE_POINT();
|
1008
1008
|
PoolPtr pool = getPool();
|
1009
|
-
unique_lock<boost::mutex> lock(pool->syncher);
|
1009
|
+
boost::unique_lock<boost::mutex> lock(pool->syncher);
|
1010
1010
|
|
1011
1011
|
while (true) {
|
1012
1012
|
assert(detachedProcessesCheckerActive);
|
@@ -1223,7 +1223,7 @@ PipeWatcher::start() {
|
|
1223
1223
|
}
|
1224
1224
|
|
1225
1225
|
void
|
1226
|
-
PipeWatcher::threadMain(shared_ptr<PipeWatcher> self) {
|
1226
|
+
PipeWatcher::threadMain(boost::shared_ptr<PipeWatcher> self) {
|
1227
1227
|
TRACE_POINT();
|
1228
1228
|
self->threadMain();
|
1229
1229
|
}
|
@@ -1232,7 +1232,7 @@ void
|
|
1232
1232
|
PipeWatcher::threadMain() {
|
1233
1233
|
TRACE_POINT();
|
1234
1234
|
{
|
1235
|
-
unique_lock<boost::mutex> lock(startSyncher);
|
1235
|
+
boost::unique_lock<boost::mutex> lock(startSyncher);
|
1236
1236
|
while (!started) {
|
1237
1237
|
startCond.wait(lock);
|
1238
1238
|
}
|
@@ -39,9 +39,9 @@ using namespace boost;
|
|
39
39
|
|
40
40
|
|
41
41
|
/** A PipeWatcher lives until the file descriptor is closed. */
|
42
|
-
struct PipeWatcher: public enable_shared_from_this<PipeWatcher> {
|
42
|
+
struct PipeWatcher: public boost::enable_shared_from_this<PipeWatcher> {
|
43
43
|
// For unit tests.
|
44
|
-
typedef function<void (const char *data, unsigned int size)> DataCallback;
|
44
|
+
typedef boost::function<void (const char *data, unsigned int size)> DataCallback;
|
45
45
|
static DataCallback onData;
|
46
46
|
|
47
47
|
FileDescriptor fd;
|
@@ -50,16 +50,16 @@ struct PipeWatcher: public enable_shared_from_this<PipeWatcher> {
|
|
50
50
|
bool print;
|
51
51
|
bool started;
|
52
52
|
boost::mutex startSyncher;
|
53
|
-
condition_variable startCond;
|
53
|
+
boost::condition_variable startCond;
|
54
54
|
|
55
55
|
PipeWatcher(const FileDescriptor &_fd, const char *name, pid_t pid, bool _print);
|
56
56
|
void initialize();
|
57
57
|
void start();
|
58
|
-
static void threadMain(shared_ptr<PipeWatcher> self);
|
58
|
+
static void threadMain(boost::shared_ptr<PipeWatcher> self);
|
59
59
|
void threadMain();
|
60
60
|
};
|
61
61
|
|
62
|
-
typedef shared_ptr<PipeWatcher> PipeWatcherPtr;
|
62
|
+
typedef boost::shared_ptr<PipeWatcher> PipeWatcherPtr;
|
63
63
|
|
64
64
|
|
65
65
|
} // namespace ApplicationPool2
|
@@ -66,7 +66,7 @@ using namespace boost;
|
|
66
66
|
using namespace oxt;
|
67
67
|
|
68
68
|
|
69
|
-
class Pool: public enable_shared_from_this<Pool> {
|
69
|
+
class Pool: public boost::enable_shared_from_this<Pool> {
|
70
70
|
public:
|
71
71
|
struct InspectOptions {
|
72
72
|
bool colorize;
|
@@ -107,8 +107,8 @@ public:
|
|
107
107
|
unsigned int spawnLoopIteration;
|
108
108
|
|
109
109
|
DebugSupport() {
|
110
|
-
debugger = make_shared<MessageBox>();
|
111
|
-
messages = make_shared<MessageBox>();
|
110
|
+
debugger = boost::make_shared<MessageBox>();
|
111
|
+
messages = boost::make_shared<MessageBox>();
|
112
112
|
restarting = true;
|
113
113
|
spawning = true;
|
114
114
|
superGroup = false;
|
@@ -118,7 +118,7 @@ public:
|
|
118
118
|
}
|
119
119
|
};
|
120
120
|
|
121
|
-
typedef shared_ptr<DebugSupport> DebugSupportPtr;
|
121
|
+
typedef boost::shared_ptr<DebugSupport> DebugSupportPtr;
|
122
122
|
|
123
123
|
SpawnerFactoryPtr spawnerFactory;
|
124
124
|
LoggerFactoryPtr loggerFactory;
|
@@ -129,7 +129,7 @@ public:
|
|
129
129
|
unsigned int max;
|
130
130
|
unsigned long long maxIdleTime;
|
131
131
|
|
132
|
-
condition_variable garbageCollectionCond;
|
132
|
+
boost::condition_variable garbageCollectionCond;
|
133
133
|
|
134
134
|
/**
|
135
135
|
* Code can register background threads in one of these dynamic thread groups
|
@@ -472,7 +472,7 @@ public:
|
|
472
472
|
|
473
473
|
struct DetachSuperGroupWaitTicket {
|
474
474
|
boost::mutex syncher;
|
475
|
-
condition_variable cond;
|
475
|
+
boost::condition_variable cond;
|
476
476
|
SuperGroup::ShutdownResult result;
|
477
477
|
bool done;
|
478
478
|
|
@@ -483,7 +483,7 @@ public:
|
|
483
483
|
|
484
484
|
struct DisableWaitTicket {
|
485
485
|
boost::mutex syncher;
|
486
|
-
condition_variable cond;
|
486
|
+
boost::condition_variable cond;
|
487
487
|
DisableResult result;
|
488
488
|
bool done;
|
489
489
|
|
@@ -493,7 +493,7 @@ public:
|
|
493
493
|
};
|
494
494
|
|
495
495
|
static void syncDetachSuperGroupCallback(SuperGroup::ShutdownResult result,
|
496
|
-
shared_ptr<DetachSuperGroupWaitTicket> ticket)
|
496
|
+
boost::shared_ptr<DetachSuperGroupWaitTicket> ticket)
|
497
497
|
{
|
498
498
|
LockGuard l(ticket->syncher);
|
499
499
|
ticket->done = true;
|
@@ -501,7 +501,7 @@ public:
|
|
501
501
|
ticket->cond.notify_one();
|
502
502
|
}
|
503
503
|
|
504
|
-
static void waitDetachSuperGroupCallback(shared_ptr<DetachSuperGroupWaitTicket> ticket) {
|
504
|
+
static void waitDetachSuperGroupCallback(boost::shared_ptr<DetachSuperGroupWaitTicket> ticket) {
|
505
505
|
ScopedLock l(ticket->syncher);
|
506
506
|
while (!ticket->done) {
|
507
507
|
ticket->cond.wait(l);
|
@@ -509,7 +509,7 @@ public:
|
|
509
509
|
}
|
510
510
|
|
511
511
|
static void syncDisableProcessCallback(const ProcessPtr &process, DisableResult result,
|
512
|
-
shared_ptr<DisableWaitTicket> ticket)
|
512
|
+
boost::shared_ptr<DisableWaitTicket> ticket)
|
513
513
|
{
|
514
514
|
LockGuard l(ticket->syncher);
|
515
515
|
ticket->done = true;
|
@@ -672,7 +672,7 @@ public:
|
|
672
672
|
stringstream data;
|
673
673
|
};
|
674
674
|
|
675
|
-
typedef shared_ptr<ProcessAnalyticsLogEntry> ProcessAnalyticsLogEntryPtr;
|
675
|
+
typedef boost::shared_ptr<ProcessAnalyticsLogEntry> ProcessAnalyticsLogEntryPtr;
|
676
676
|
|
677
677
|
static void collectAnalytics(PoolPtr self) {
|
678
678
|
TRACE_POINT();
|
@@ -782,7 +782,7 @@ public:
|
|
782
782
|
|
783
783
|
// Log to Union Station.
|
784
784
|
if (group->options.analytics && loggerFactory != NULL) {
|
785
|
-
ProcessAnalyticsLogEntryPtr entry = make_shared<ProcessAnalyticsLogEntry>();
|
785
|
+
ProcessAnalyticsLogEntryPtr entry = boost::make_shared<ProcessAnalyticsLogEntry>();
|
786
786
|
stringstream &xml = entry->data;
|
787
787
|
|
788
788
|
entry->groupName = group->name;
|
@@ -832,7 +832,7 @@ public:
|
|
832
832
|
}
|
833
833
|
|
834
834
|
SuperGroupPtr createSuperGroup(const Options &options) {
|
835
|
-
SuperGroupPtr superGroup = make_shared<SuperGroup>(shared_from_this(),
|
835
|
+
SuperGroupPtr superGroup = boost::make_shared<SuperGroup>(shared_from_this(),
|
836
836
|
options);
|
837
837
|
superGroup->initialize();
|
838
838
|
superGroups.set(options.getAppGroupName(), superGroup);
|
@@ -867,7 +867,7 @@ public:
|
|
867
867
|
if (randomGenerator != NULL) {
|
868
868
|
this->randomGenerator = randomGenerator;
|
869
869
|
} else {
|
870
|
-
this->randomGenerator = make_shared<RandomGenerator>();
|
870
|
+
this->randomGenerator = boost::make_shared<RandomGenerator>();
|
871
871
|
}
|
872
872
|
|
873
873
|
lifeStatus = ALIVE;
|
@@ -904,7 +904,7 @@ public:
|
|
904
904
|
|
905
905
|
void initDebugging() {
|
906
906
|
LockGuard l(syncher);
|
907
|
-
debugSupport = make_shared<DebugSupport>();
|
907
|
+
debugSupport = boost::make_shared<DebugSupport>();
|
908
908
|
}
|
909
909
|
|
910
910
|
void destroy() {
|
@@ -1019,7 +1019,7 @@ public:
|
|
1019
1019
|
* the missing SuperGroup.
|
1020
1020
|
*/
|
1021
1021
|
P_DEBUG("Creating new SuperGroup");
|
1022
|
-
superGroup = make_shared<SuperGroup>(shared_from_this(), options);
|
1022
|
+
superGroup = boost::make_shared<SuperGroup>(shared_from_this(), options);
|
1023
1023
|
superGroup->initialize();
|
1024
1024
|
superGroups.set(options.getAppGroupName(), superGroup);
|
1025
1025
|
garbageCollectionCond.notify_all();
|
@@ -1053,7 +1053,7 @@ public:
|
|
1053
1053
|
}
|
1054
1054
|
}
|
1055
1055
|
|
1056
|
-
// TODO: 'ticket' should be a shared_ptr for interruption-safety.
|
1056
|
+
// TODO: 'ticket' should be a boost::shared_ptr for interruption-safety.
|
1057
1057
|
SessionPtr get(const Options &options, Ticket *ticket) {
|
1058
1058
|
ticket->session.reset();
|
1059
1059
|
ticket->exception.reset();
|
@@ -1236,8 +1236,8 @@ public:
|
|
1236
1236
|
verifyExpensiveInvariants();
|
1237
1237
|
|
1238
1238
|
vector<Callback> actions;
|
1239
|
-
shared_ptr<DetachSuperGroupWaitTicket> ticket =
|
1240
|
-
make_shared<DetachSuperGroupWaitTicket>();
|
1239
|
+
boost::shared_ptr<DetachSuperGroupWaitTicket> ticket =
|
1240
|
+
boost::make_shared<DetachSuperGroupWaitTicket>();
|
1241
1241
|
ExceptionPtr exception = copyException(
|
1242
1242
|
GetAbortedException("The containg SuperGroup was detached."));
|
1243
1243
|
|
@@ -1338,8 +1338,8 @@ public:
|
|
1338
1338
|
ProcessPtr process = findProcessByGupid(gupid, false);
|
1339
1339
|
if (process != NULL) {
|
1340
1340
|
GroupPtr group = process->getGroup();
|
1341
|
-
// Must be a shared_ptr to be interruption-safe.
|
1342
|
-
shared_ptr<DisableWaitTicket> ticket = make_shared<DisableWaitTicket>();
|
1341
|
+
// Must be a boost::shared_ptr to be interruption-safe.
|
1342
|
+
boost::shared_ptr<DisableWaitTicket> ticket = boost::make_shared<DisableWaitTicket>();
|
1343
1343
|
DisableResult result = group->disable(process,
|
1344
1344
|
boost::bind(syncDisableProcessCallback, _1, _2, ticket));
|
1345
1345
|
group->verifyInvariants();
|
@@ -125,7 +125,7 @@ public:
|
|
125
125
|
* This means that a Group outlives all its Processes, a Process outlives all
|
126
126
|
* its Sessions, and a Process also outlives the OS process.
|
127
127
|
*/
|
128
|
-
class Process: public enable_shared_from_this<Process> {
|
128
|
+
class Process: public boost::enable_shared_from_this<Process> {
|
129
129
|
private:
|
130
130
|
friend class Group;
|
131
131
|
|
@@ -136,7 +136,7 @@ private:
|
|
136
136
|
* Should never be NULL because a Group should outlive all of its Processes.
|
137
137
|
* Read-only; only set once during initialization.
|
138
138
|
*/
|
139
|
-
weak_ptr<Group> group;
|
139
|
+
boost::weak_ptr<Group> group;
|
140
140
|
|
141
141
|
/** A subset of 'sockets': all sockets that speak the
|
142
142
|
* "session" protocol, sorted by socket.utilization(). */
|
@@ -345,19 +345,19 @@ public:
|
|
345
345
|
{
|
346
346
|
SpawnerConfigPtr config;
|
347
347
|
if (_config == NULL) {
|
348
|
-
config = make_shared<SpawnerConfig>();
|
348
|
+
config = boost::make_shared<SpawnerConfig>();
|
349
349
|
} else {
|
350
350
|
config = _config;
|
351
351
|
}
|
352
352
|
|
353
353
|
if (_adminSocket != -1) {
|
354
|
-
PipeWatcherPtr watcher = make_shared<PipeWatcher>(_adminSocket,
|
354
|
+
PipeWatcherPtr watcher = boost::make_shared<PipeWatcher>(_adminSocket,
|
355
355
|
"stdout", pid, config->forwardStdout);
|
356
356
|
watcher->initialize();
|
357
357
|
watcher->start();
|
358
358
|
}
|
359
359
|
if (_errorPipe != -1) {
|
360
|
-
PipeWatcherPtr watcher = make_shared<PipeWatcher>(_errorPipe,
|
360
|
+
PipeWatcherPtr watcher = boost::make_shared<PipeWatcher>(_errorPipe,
|
361
361
|
"stderr", pid, config->forwardStderr);
|
362
362
|
watcher->initialize();
|
363
363
|
watcher->start();
|
@@ -559,7 +559,7 @@ public:
|
|
559
559
|
this->sessions++;
|
560
560
|
socket->pqHandle = sessionSockets.push(socket, socket->utilization());
|
561
561
|
lastUsed = SystemTime::getUsec();
|
562
|
-
return make_shared<Session>(shared_from_this(), socket);
|
562
|
+
return boost::make_shared<Session>(shared_from_this(), socket);
|
563
563
|
}
|
564
564
|
}
|
565
565
|
|