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/libev/ev_win32.c
CHANGED
@@ -48,6 +48,16 @@
|
|
48
48
|
/* for the crt to do something about it */
|
49
49
|
volatile double SIGFPE_REQ = 0.0f;
|
50
50
|
|
51
|
+
static SOCKET
|
52
|
+
ev_tcp_socket (void)
|
53
|
+
{
|
54
|
+
#if EV_USE_WSASOCKET
|
55
|
+
return WSASocket (AF_INET, SOCK_STREAM, 0, 0, 0, 0);
|
56
|
+
#else
|
57
|
+
return socket (AF_INET, SOCK_STREAM, 0);
|
58
|
+
#endif
|
59
|
+
}
|
60
|
+
|
51
61
|
/* oh, the humanity! */
|
52
62
|
static int
|
53
63
|
ev_pipe (int filedes [2])
|
@@ -59,7 +69,7 @@ ev_pipe (int filedes [2])
|
|
59
69
|
SOCKET listener;
|
60
70
|
SOCKET sock [2] = { -1, -1 };
|
61
71
|
|
62
|
-
if ((listener =
|
72
|
+
if ((listener = ev_tcp_socket ()) == INVALID_SOCKET)
|
63
73
|
return -1;
|
64
74
|
|
65
75
|
addr.sin_family = AF_INET;
|
@@ -75,7 +85,7 @@ ev_pipe (int filedes [2])
|
|
75
85
|
if (listen (listener, 1))
|
76
86
|
goto fail;
|
77
87
|
|
78
|
-
if ((sock [0] =
|
88
|
+
if ((sock [0] = ev_tcp_socket ()) == INVALID_SOCKET)
|
79
89
|
goto fail;
|
80
90
|
|
81
91
|
if (connect (sock [0], (struct sockaddr *)&addr, addr_size))
|
data/ext/libev/ev_wrap.h
CHANGED
@@ -1,198 +1,200 @@
|
|
1
1
|
/* DO NOT EDIT, automatically generated by update_ev_wrap */
|
2
2
|
#ifndef EV_WRAP_H
|
3
3
|
#define EV_WRAP_H
|
4
|
-
#define
|
5
|
-
#define mn_now ((loop)->mn_now)
|
6
|
-
#define rtmn_diff ((loop)->rtmn_diff)
|
7
|
-
#define io_blocktime ((loop)->io_blocktime)
|
8
|
-
#define timeout_blocktime ((loop)->timeout_blocktime)
|
9
|
-
#define backend ((loop)->backend)
|
4
|
+
#define acquire_cb ((loop)->acquire_cb)
|
10
5
|
#define activecnt ((loop)->activecnt)
|
11
|
-
#define
|
6
|
+
#define anfdmax ((loop)->anfdmax)
|
7
|
+
#define anfds ((loop)->anfds)
|
8
|
+
#define async_pending ((loop)->async_pending)
|
9
|
+
#define asynccnt ((loop)->asynccnt)
|
10
|
+
#define asyncmax ((loop)->asyncmax)
|
11
|
+
#define asyncs ((loop)->asyncs)
|
12
|
+
#define backend ((loop)->backend)
|
12
13
|
#define backend_fd ((loop)->backend_fd)
|
13
14
|
#define backend_mintime ((loop)->backend_mintime)
|
14
15
|
#define backend_modify ((loop)->backend_modify)
|
15
16
|
#define backend_poll ((loop)->backend_poll)
|
16
|
-
#define
|
17
|
-
#define
|
18
|
-
#define
|
19
|
-
#define
|
20
|
-
#define
|
21
|
-
#define
|
22
|
-
#define rfeeds ((loop)->rfeeds)
|
23
|
-
#define rfeedmax ((loop)->rfeedmax)
|
24
|
-
#define rfeedcnt ((loop)->rfeedcnt)
|
25
|
-
#define evfd ((loop)->evfd)
|
26
|
-
#define evpipe ((loop)->evpipe)
|
27
|
-
#define pipe_w ((loop)->pipe_w)
|
28
|
-
#define pipe_write_wanted ((loop)->pipe_write_wanted)
|
29
|
-
#define pipe_write_skipped ((loop)->pipe_write_skipped)
|
17
|
+
#define checkcnt ((loop)->checkcnt)
|
18
|
+
#define checkmax ((loop)->checkmax)
|
19
|
+
#define checks ((loop)->checks)
|
20
|
+
#define cleanupcnt ((loop)->cleanupcnt)
|
21
|
+
#define cleanupmax ((loop)->cleanupmax)
|
22
|
+
#define cleanups ((loop)->cleanups)
|
30
23
|
#define curpid ((loop)->curpid)
|
31
|
-
#define postfork ((loop)->postfork)
|
32
|
-
#define vec_ri ((loop)->vec_ri)
|
33
|
-
#define vec_ro ((loop)->vec_ro)
|
34
|
-
#define vec_wi ((loop)->vec_wi)
|
35
|
-
#define vec_wo ((loop)->vec_wo)
|
36
|
-
#define vec_eo ((loop)->vec_eo)
|
37
|
-
#define vec_max ((loop)->vec_max)
|
38
|
-
#define polls ((loop)->polls)
|
39
|
-
#define pollmax ((loop)->pollmax)
|
40
|
-
#define pollcnt ((loop)->pollcnt)
|
41
|
-
#define pollidxs ((loop)->pollidxs)
|
42
|
-
#define pollidxmax ((loop)->pollidxmax)
|
43
|
-
#define epoll_events ((loop)->epoll_events)
|
44
|
-
#define epoll_eventmax ((loop)->epoll_eventmax)
|
45
|
-
#define epoll_eperms ((loop)->epoll_eperms)
|
46
24
|
#define epoll_epermcnt ((loop)->epoll_epermcnt)
|
47
25
|
#define epoll_epermmax ((loop)->epoll_epermmax)
|
48
|
-
#define
|
49
|
-
#define
|
50
|
-
#define
|
51
|
-
#define
|
52
|
-
#define kqueue_eventmax ((loop)->kqueue_eventmax)
|
53
|
-
#define port_events ((loop)->port_events)
|
54
|
-
#define port_eventmax ((loop)->port_eventmax)
|
55
|
-
#define iocp ((loop)->iocp)
|
56
|
-
#define fdchanges ((loop)->fdchanges)
|
57
|
-
#define fdchangemax ((loop)->fdchangemax)
|
26
|
+
#define epoll_eperms ((loop)->epoll_eperms)
|
27
|
+
#define epoll_eventmax ((loop)->epoll_eventmax)
|
28
|
+
#define epoll_events ((loop)->epoll_events)
|
29
|
+
#define evpipe ((loop)->evpipe)
|
58
30
|
#define fdchangecnt ((loop)->fdchangecnt)
|
59
|
-
#define
|
60
|
-
#define
|
61
|
-
#define timercnt ((loop)->timercnt)
|
62
|
-
#define periodics ((loop)->periodics)
|
63
|
-
#define periodicmax ((loop)->periodicmax)
|
64
|
-
#define periodiccnt ((loop)->periodiccnt)
|
65
|
-
#define idles ((loop)->idles)
|
66
|
-
#define idlemax ((loop)->idlemax)
|
67
|
-
#define idlecnt ((loop)->idlecnt)
|
68
|
-
#define idleall ((loop)->idleall)
|
69
|
-
#define prepares ((loop)->prepares)
|
70
|
-
#define preparemax ((loop)->preparemax)
|
71
|
-
#define preparecnt ((loop)->preparecnt)
|
72
|
-
#define checks ((loop)->checks)
|
73
|
-
#define checkmax ((loop)->checkmax)
|
74
|
-
#define checkcnt ((loop)->checkcnt)
|
75
|
-
#define forks ((loop)->forks)
|
76
|
-
#define forkmax ((loop)->forkmax)
|
31
|
+
#define fdchangemax ((loop)->fdchangemax)
|
32
|
+
#define fdchanges ((loop)->fdchanges)
|
77
33
|
#define forkcnt ((loop)->forkcnt)
|
78
|
-
#define
|
79
|
-
#define
|
80
|
-
#define cleanupcnt ((loop)->cleanupcnt)
|
81
|
-
#define async_pending ((loop)->async_pending)
|
82
|
-
#define asyncs ((loop)->asyncs)
|
83
|
-
#define asyncmax ((loop)->asyncmax)
|
84
|
-
#define asynccnt ((loop)->asynccnt)
|
85
|
-
#define fs_fd ((loop)->fs_fd)
|
86
|
-
#define fs_w ((loop)->fs_w)
|
34
|
+
#define forkmax ((loop)->forkmax)
|
35
|
+
#define forks ((loop)->forks)
|
87
36
|
#define fs_2625 ((loop)->fs_2625)
|
37
|
+
#define fs_fd ((loop)->fs_fd)
|
88
38
|
#define fs_hash ((loop)->fs_hash)
|
39
|
+
#define fs_w ((loop)->fs_w)
|
40
|
+
#define idleall ((loop)->idleall)
|
41
|
+
#define idlecnt ((loop)->idlecnt)
|
42
|
+
#define idlemax ((loop)->idlemax)
|
43
|
+
#define idles ((loop)->idles)
|
44
|
+
#define invoke_cb ((loop)->invoke_cb)
|
45
|
+
#define io_blocktime ((loop)->io_blocktime)
|
46
|
+
#define iocp ((loop)->iocp)
|
47
|
+
#define kqueue_changecnt ((loop)->kqueue_changecnt)
|
48
|
+
#define kqueue_changemax ((loop)->kqueue_changemax)
|
49
|
+
#define kqueue_changes ((loop)->kqueue_changes)
|
50
|
+
#define kqueue_eventmax ((loop)->kqueue_eventmax)
|
51
|
+
#define kqueue_events ((loop)->kqueue_events)
|
52
|
+
#define kqueue_fd_pid ((loop)->kqueue_fd_pid)
|
53
|
+
#define loop_count ((loop)->loop_count)
|
54
|
+
#define loop_depth ((loop)->loop_depth)
|
55
|
+
#define loop_done ((loop)->loop_done)
|
56
|
+
#define mn_now ((loop)->mn_now)
|
57
|
+
#define now_floor ((loop)->now_floor)
|
58
|
+
#define origflags ((loop)->origflags)
|
59
|
+
#define pending_w ((loop)->pending_w)
|
60
|
+
#define pendingcnt ((loop)->pendingcnt)
|
61
|
+
#define pendingmax ((loop)->pendingmax)
|
62
|
+
#define pendingpri ((loop)->pendingpri)
|
63
|
+
#define pendings ((loop)->pendings)
|
64
|
+
#define periodiccnt ((loop)->periodiccnt)
|
65
|
+
#define periodicmax ((loop)->periodicmax)
|
66
|
+
#define periodics ((loop)->periodics)
|
67
|
+
#define pipe_w ((loop)->pipe_w)
|
68
|
+
#define pipe_write_skipped ((loop)->pipe_write_skipped)
|
69
|
+
#define pipe_write_wanted ((loop)->pipe_write_wanted)
|
70
|
+
#define pollcnt ((loop)->pollcnt)
|
71
|
+
#define pollidxmax ((loop)->pollidxmax)
|
72
|
+
#define pollidxs ((loop)->pollidxs)
|
73
|
+
#define pollmax ((loop)->pollmax)
|
74
|
+
#define polls ((loop)->polls)
|
75
|
+
#define port_eventmax ((loop)->port_eventmax)
|
76
|
+
#define port_events ((loop)->port_events)
|
77
|
+
#define postfork ((loop)->postfork)
|
78
|
+
#define preparecnt ((loop)->preparecnt)
|
79
|
+
#define preparemax ((loop)->preparemax)
|
80
|
+
#define prepares ((loop)->prepares)
|
81
|
+
#define release_cb ((loop)->release_cb)
|
82
|
+
#define rfeedcnt ((loop)->rfeedcnt)
|
83
|
+
#define rfeedmax ((loop)->rfeedmax)
|
84
|
+
#define rfeeds ((loop)->rfeeds)
|
85
|
+
#define rtmn_diff ((loop)->rtmn_diff)
|
89
86
|
#define sig_pending ((loop)->sig_pending)
|
90
87
|
#define sigfd ((loop)->sigfd)
|
91
|
-
#define sigfd_w ((loop)->sigfd_w)
|
92
88
|
#define sigfd_set ((loop)->sigfd_set)
|
93
|
-
#define
|
94
|
-
#define
|
95
|
-
#define
|
89
|
+
#define sigfd_w ((loop)->sigfd_w)
|
90
|
+
#define timeout_blocktime ((loop)->timeout_blocktime)
|
91
|
+
#define timercnt ((loop)->timercnt)
|
92
|
+
#define timermax ((loop)->timermax)
|
93
|
+
#define timers ((loop)->timers)
|
96
94
|
#define userdata ((loop)->userdata)
|
97
|
-
#define
|
98
|
-
#define
|
99
|
-
#define
|
95
|
+
#define vec_eo ((loop)->vec_eo)
|
96
|
+
#define vec_max ((loop)->vec_max)
|
97
|
+
#define vec_ri ((loop)->vec_ri)
|
98
|
+
#define vec_ro ((loop)->vec_ro)
|
99
|
+
#define vec_wi ((loop)->vec_wi)
|
100
|
+
#define vec_wo ((loop)->vec_wo)
|
100
101
|
#else
|
101
102
|
#undef EV_WRAP_H
|
102
|
-
#undef
|
103
|
-
#undef mn_now
|
104
|
-
#undef rtmn_diff
|
105
|
-
#undef io_blocktime
|
106
|
-
#undef timeout_blocktime
|
107
|
-
#undef backend
|
103
|
+
#undef acquire_cb
|
108
104
|
#undef activecnt
|
109
|
-
#undef
|
105
|
+
#undef anfdmax
|
106
|
+
#undef anfds
|
107
|
+
#undef async_pending
|
108
|
+
#undef asynccnt
|
109
|
+
#undef asyncmax
|
110
|
+
#undef asyncs
|
111
|
+
#undef backend
|
110
112
|
#undef backend_fd
|
111
113
|
#undef backend_mintime
|
112
114
|
#undef backend_modify
|
113
115
|
#undef backend_poll
|
114
|
-
#undef
|
115
|
-
#undef
|
116
|
-
#undef
|
117
|
-
#undef
|
118
|
-
#undef
|
119
|
-
#undef
|
120
|
-
#undef rfeeds
|
121
|
-
#undef rfeedmax
|
122
|
-
#undef rfeedcnt
|
123
|
-
#undef evfd
|
124
|
-
#undef evpipe
|
125
|
-
#undef pipe_w
|
126
|
-
#undef pipe_write_wanted
|
127
|
-
#undef pipe_write_skipped
|
116
|
+
#undef checkcnt
|
117
|
+
#undef checkmax
|
118
|
+
#undef checks
|
119
|
+
#undef cleanupcnt
|
120
|
+
#undef cleanupmax
|
121
|
+
#undef cleanups
|
128
122
|
#undef curpid
|
129
|
-
#undef postfork
|
130
|
-
#undef vec_ri
|
131
|
-
#undef vec_ro
|
132
|
-
#undef vec_wi
|
133
|
-
#undef vec_wo
|
134
|
-
#undef vec_eo
|
135
|
-
#undef vec_max
|
136
|
-
#undef polls
|
137
|
-
#undef pollmax
|
138
|
-
#undef pollcnt
|
139
|
-
#undef pollidxs
|
140
|
-
#undef pollidxmax
|
141
|
-
#undef epoll_events
|
142
|
-
#undef epoll_eventmax
|
143
|
-
#undef epoll_eperms
|
144
123
|
#undef epoll_epermcnt
|
145
124
|
#undef epoll_epermmax
|
146
|
-
#undef
|
147
|
-
#undef
|
148
|
-
#undef
|
149
|
-
#undef
|
150
|
-
#undef kqueue_eventmax
|
151
|
-
#undef port_events
|
152
|
-
#undef port_eventmax
|
153
|
-
#undef iocp
|
154
|
-
#undef fdchanges
|
155
|
-
#undef fdchangemax
|
125
|
+
#undef epoll_eperms
|
126
|
+
#undef epoll_eventmax
|
127
|
+
#undef epoll_events
|
128
|
+
#undef evpipe
|
156
129
|
#undef fdchangecnt
|
157
|
-
#undef
|
158
|
-
#undef
|
159
|
-
#undef timercnt
|
160
|
-
#undef periodics
|
161
|
-
#undef periodicmax
|
162
|
-
#undef periodiccnt
|
163
|
-
#undef idles
|
164
|
-
#undef idlemax
|
165
|
-
#undef idlecnt
|
166
|
-
#undef idleall
|
167
|
-
#undef prepares
|
168
|
-
#undef preparemax
|
169
|
-
#undef preparecnt
|
170
|
-
#undef checks
|
171
|
-
#undef checkmax
|
172
|
-
#undef checkcnt
|
173
|
-
#undef forks
|
174
|
-
#undef forkmax
|
130
|
+
#undef fdchangemax
|
131
|
+
#undef fdchanges
|
175
132
|
#undef forkcnt
|
176
|
-
#undef
|
177
|
-
#undef
|
178
|
-
#undef cleanupcnt
|
179
|
-
#undef async_pending
|
180
|
-
#undef asyncs
|
181
|
-
#undef asyncmax
|
182
|
-
#undef asynccnt
|
183
|
-
#undef fs_fd
|
184
|
-
#undef fs_w
|
133
|
+
#undef forkmax
|
134
|
+
#undef forks
|
185
135
|
#undef fs_2625
|
136
|
+
#undef fs_fd
|
186
137
|
#undef fs_hash
|
138
|
+
#undef fs_w
|
139
|
+
#undef idleall
|
140
|
+
#undef idlecnt
|
141
|
+
#undef idlemax
|
142
|
+
#undef idles
|
143
|
+
#undef invoke_cb
|
144
|
+
#undef io_blocktime
|
145
|
+
#undef iocp
|
146
|
+
#undef kqueue_changecnt
|
147
|
+
#undef kqueue_changemax
|
148
|
+
#undef kqueue_changes
|
149
|
+
#undef kqueue_eventmax
|
150
|
+
#undef kqueue_events
|
151
|
+
#undef kqueue_fd_pid
|
152
|
+
#undef loop_count
|
153
|
+
#undef loop_depth
|
154
|
+
#undef loop_done
|
155
|
+
#undef mn_now
|
156
|
+
#undef now_floor
|
157
|
+
#undef origflags
|
158
|
+
#undef pending_w
|
159
|
+
#undef pendingcnt
|
160
|
+
#undef pendingmax
|
161
|
+
#undef pendingpri
|
162
|
+
#undef pendings
|
163
|
+
#undef periodiccnt
|
164
|
+
#undef periodicmax
|
165
|
+
#undef periodics
|
166
|
+
#undef pipe_w
|
167
|
+
#undef pipe_write_skipped
|
168
|
+
#undef pipe_write_wanted
|
169
|
+
#undef pollcnt
|
170
|
+
#undef pollidxmax
|
171
|
+
#undef pollidxs
|
172
|
+
#undef pollmax
|
173
|
+
#undef polls
|
174
|
+
#undef port_eventmax
|
175
|
+
#undef port_events
|
176
|
+
#undef postfork
|
177
|
+
#undef preparecnt
|
178
|
+
#undef preparemax
|
179
|
+
#undef prepares
|
180
|
+
#undef release_cb
|
181
|
+
#undef rfeedcnt
|
182
|
+
#undef rfeedmax
|
183
|
+
#undef rfeeds
|
184
|
+
#undef rtmn_diff
|
187
185
|
#undef sig_pending
|
188
186
|
#undef sigfd
|
189
|
-
#undef sigfd_w
|
190
187
|
#undef sigfd_set
|
191
|
-
#undef
|
192
|
-
#undef
|
193
|
-
#undef
|
188
|
+
#undef sigfd_w
|
189
|
+
#undef timeout_blocktime
|
190
|
+
#undef timercnt
|
191
|
+
#undef timermax
|
192
|
+
#undef timers
|
194
193
|
#undef userdata
|
195
|
-
#undef
|
196
|
-
#undef
|
197
|
-
#undef
|
194
|
+
#undef vec_eo
|
195
|
+
#undef vec_max
|
196
|
+
#undef vec_ri
|
197
|
+
#undef vec_ro
|
198
|
+
#undef vec_wi
|
199
|
+
#undef vec_wo
|
198
200
|
#endif
|
data/ext/libev/event.c
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
/*
|
2
2
|
* libevent compatibility layer
|
3
3
|
*
|
4
|
-
* Copyright (c) 2007,2008,2009,2010 Marc Alexander Lehmann <libev@schmorp.de>
|
4
|
+
* Copyright (c) 2007,2008,2009,2010,2012 Marc Alexander Lehmann <libev@schmorp.de>
|
5
5
|
* All rights reserved.
|
6
6
|
*
|
7
7
|
* Redistribution and use in source and binary forms, with or without modifica-
|
@@ -78,13 +78,15 @@ ev_tv_get (struct timeval *tv)
|
|
78
78
|
#define EVENT_STRINGIFY(s) # s
|
79
79
|
#define EVENT_VERSION(a,b) EVENT_STRINGIFY (a) "." EVENT_STRINGIFY (b)
|
80
80
|
|
81
|
-
const char *
|
81
|
+
const char *
|
82
|
+
event_get_version (void)
|
82
83
|
{
|
83
84
|
/* returns ABI, not API or library, version */
|
84
85
|
return EVENT_VERSION (EV_VERSION_MAJOR, EV_VERSION_MINOR);
|
85
86
|
}
|
86
87
|
|
87
|
-
const char *
|
88
|
+
const char *
|
89
|
+
event_get_method (void)
|
88
90
|
{
|
89
91
|
return "libev";
|
90
92
|
}
|
@@ -105,6 +107,23 @@ void *event_init (void)
|
|
105
107
|
return ev_x_cur;
|
106
108
|
}
|
107
109
|
|
110
|
+
const char *
|
111
|
+
event_base_get_method (const struct event_base *base)
|
112
|
+
{
|
113
|
+
return "libev";
|
114
|
+
}
|
115
|
+
|
116
|
+
struct event_base *
|
117
|
+
event_base_new (void)
|
118
|
+
{
|
119
|
+
#if EV_MULTIPLICITY
|
120
|
+
return (struct event_base *)ev_loop_new (EVFLAG_AUTO);
|
121
|
+
#else
|
122
|
+
assert (("libev: multiple event bases not supported when not compiled with EV_MULTIPLICITY"));
|
123
|
+
return NULL;
|
124
|
+
#endif
|
125
|
+
}
|
126
|
+
|
108
127
|
void event_base_free (struct event_base *base)
|
109
128
|
{
|
110
129
|
dLOOPbase;
|
@@ -137,6 +156,12 @@ int event_loopexit (struct timeval *tv)
|
|
137
156
|
return event_base_loopexit (ev_x_cur, tv);
|
138
157
|
}
|
139
158
|
|
159
|
+
event_callback_fn event_get_callback
|
160
|
+
(const struct event *ev)
|
161
|
+
{
|
162
|
+
return ev->ev_callback;
|
163
|
+
}
|
164
|
+
|
140
165
|
static void
|
141
166
|
ev_x_cb (struct event *ev, int revents)
|
142
167
|
{
|
@@ -332,9 +357,7 @@ int event_base_loop (struct event_base *base, int flags)
|
|
332
357
|
{
|
333
358
|
dLOOPbase;
|
334
359
|
|
335
|
-
ev_run (EV_A_ flags);
|
336
|
-
|
337
|
-
return 0;
|
360
|
+
return !ev_run (EV_A_ flags);
|
338
361
|
}
|
339
362
|
|
340
363
|
int event_base_dispatch (struct event_base *base)
|