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
data/ext/common/SafeLibev.h
CHANGED
@@ -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
|
|
data/ext/common/UnionStation.h
CHANGED
@@ -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);
|
data/ext/common/Utils.cpp
CHANGED
@@ -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
|
417
|
+
lookupGid(const string &groupName) {
|
417
418
|
struct group *groupEntry;
|
418
|
-
char name[groupName.size() + 1];
|
419
419
|
|
420
|
-
|
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(
|
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
|
-
|
855
|
-
|
856
|
-
|
857
|
-
|
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);
|
data/ext/common/Utils.h
CHANGED
@@ -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
|
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 {
|