passenger 6.0.0 → 6.0.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG +148 -18
- data/CONTRIBUTORS +6 -0
- data/bin/passenger-install-nginx-module +1 -1
- data/bin/passenger-status +15 -0
- data/build/misc.rb +3 -1
- data/build/support/vendor/cxxcodebuilder/lib/cxxcodebuilder/builder.rb +56 -3
- data/dev/copy_boost_headers +1 -0
- data/package.json +1 -1
- data/passenger.gemspec +1 -1
- data/resources/templates/error_renderer/with_details/src/bootstrap/bootstrap.css +0 -0
- data/resources/templates/error_renderer/with_details/src/bootstrap/bootstrap.js +0 -0
- data/resources/templates/error_renderer/with_details/src/bootstrap/config.json +0 -0
- data/resources/templates/standalone/http.erb +2 -0
- data/resources/templates/standalone/server.erb +1 -0
- data/src/agent/Core/ApplicationPool/Group/ProcessListManagement.cpp +1 -1
- data/src/agent/Core/ApplicationPool/Group/StateInspection.cpp +1 -0
- data/src/agent/Core/ApplicationPool/Options.h +10 -0
- data/src/agent/Core/ApplicationPool/Pool/GarbageCollection.cpp +1 -1
- data/src/agent/Core/ApplicationPool/Pool/StateInspection.cpp +1 -1
- data/src/agent/Core/Config.h +13 -1
- data/src/agent/Core/Controller.h +1 -0
- data/src/agent/Core/Controller/Config.h +4 -1
- data/src/agent/Core/Controller/ForwardResponse.cpp +13 -0
- data/src/agent/Core/Controller/InitRequest.cpp +3 -0
- data/src/agent/Core/Controller/InitializationAndShutdown.cpp +1 -0
- data/src/agent/Core/CoreMain.cpp +2 -1
- data/src/agent/Core/OptionParser.h +3 -0
- data/src/agent/Core/SpawningKit/Context.h +1 -0
- data/src/agent/Core/SpawningKit/Handshake/Perform.h +1 -0
- data/src/agent/Core/SpawningKit/Handshake/Prepare.h +1 -1
- data/src/agent/Core/SpawningKit/Handshake/WorkDir.h +5 -2
- data/src/agent/TempDirToucher/TempDirToucherMain.cpp +2 -0
- data/src/agent/Watchdog/Config.h +14 -1
- data/src/agent/Watchdog/WatchdogMain.cpp +7 -0
- data/src/apache2_module/ConfigGeneral/AutoGeneratedDefinitions.cpp +10 -0
- data/src/apache2_module/ConfigGeneral/AutoGeneratedManifestDefaultsInitialization.cpp +10 -0
- data/src/apache2_module/ConfigGeneral/AutoGeneratedSetterFuncs.cpp +30 -0
- data/src/apache2_module/Hooks.cpp +6 -0
- data/src/apache2_module/ServerConfig/AutoGeneratedManifestGeneration.cpp +20 -0
- data/src/apache2_module/ServerConfig/AutoGeneratedStruct.h +24 -0
- data/src/cxx_supportlib/Constants.h +2 -1
- data/src/cxx_supportlib/LoggingKit/Config.h +2 -0
- data/src/cxx_supportlib/LoggingKit/Implementation.cpp +15 -9
- data/src/cxx_supportlib/ServerKit/HttpChunkedBodyParser.h +1 -1
- data/src/cxx_supportlib/SystemTools/ContainerHelpers.h +57 -2
- data/src/cxx_supportlib/WebSocketCommandReverseServer.h +11 -7
- data/src/cxx_supportlib/oxt/system_calls.cpp +10 -10
- data/src/cxx_supportlib/vendor-modified/boost/algorithm/string/finder.hpp +0 -4
- data/src/cxx_supportlib/vendor-modified/boost/asio/buffer.hpp +46 -37
- data/src/cxx_supportlib/vendor-modified/boost/asio/connect.hpp +16 -15
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/config.hpp +45 -26
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/future.hpp +33 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/socket_ops.ipp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/is_buffer_sequence.hpp +38 -14
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/timer_queue.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/io_context.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/read_until.hpp +3 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/use_future.hpp +0 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/bad_address_cast.hpp +6 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/basic_resolver.hpp +6 -4
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/basic_resolver_results.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/asio/packaged_task.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/asio/read.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/asio/read_at.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/asio/read_until.hpp +8 -6
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/context_base.hpp +17 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/impl/context.ipp +50 -5
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/stream.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/thread_pool.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/use_future.hpp +3 -2
- data/src/cxx_supportlib/vendor-modified/boost/asio/version.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/asio/write.hpp +4 -3
- data/src/cxx_supportlib/vendor-modified/boost/asio/write_at.hpp +5 -3
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_gcc_x86_dcas.hpp +13 -12
- data/src/cxx_supportlib/vendor-modified/boost/chrono/detail/inlined/mac/chrono.hpp +10 -10
- data/src/cxx_supportlib/vendor-modified/boost/chrono/detail/inlined/mac/process_cpu_clocks.hpp +34 -34
- data/src/cxx_supportlib/vendor-modified/boost/chrono/detail/inlined/mac/thread_clock.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/chrono/detail/inlined/posix/chrono.hpp +8 -8
- data/src/cxx_supportlib/vendor-modified/boost/chrono/detail/inlined/posix/process_cpu_clocks.hpp +27 -27
- data/src/cxx_supportlib/vendor-modified/boost/chrono/detail/inlined/posix/thread_clock.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/chrono/detail/system.hpp +5 -4
- data/src/cxx_supportlib/vendor-modified/boost/chrono/io/time_point_io.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/circular_buffer.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/circular_buffer/allocators.hpp +89 -0
- data/src/cxx_supportlib/vendor-modified/boost/circular_buffer/base.hpp +83 -74
- data/src/cxx_supportlib/vendor-modified/boost/circular_buffer/details.hpp +21 -33
- data/src/cxx_supportlib/vendor-modified/boost/circular_buffer/space_optimized.hpp +5 -5
- data/src/cxx_supportlib/vendor-modified/boost/concept/assert.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/concept/detail/general.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/concept/detail/has_constraints.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/concept/usage.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/concept_check.hpp +19 -19
- data/src/cxx_supportlib/vendor-modified/boost/config/auto_link.hpp +8 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/borland.hpp +5 -2
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/clang.hpp +5 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/codegear.hpp +6 -2
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/comeau.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/common_edg.hpp +4 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/cray.hpp +368 -52
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/digitalmars.hpp +4 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/gcc.hpp +6 -3
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/gcc_xml.hpp +3 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/greenhills.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/hp_acc.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/intel.hpp +6 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/kai.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/metrowerks.hpp +4 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/mpw.hpp +4 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/nvcc.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/pathscale.hpp +3 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/sunpro_cc.hpp +3 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/vacpp.hpp +4 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/visualc.hpp +9 -4
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/xlcpp.hpp +4 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/compiler/xlcpp_zos.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/detail/select_compiler_config.hpp +1 -2
- data/src/cxx_supportlib/vendor-modified/boost/config/detail/suffix.hpp +13 -0
- data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/dinkumware.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/libcpp.hpp +14 -4
- data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/libstdcpp3.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/container/adaptive_pool.hpp +262 -2
- data/src/cxx_supportlib/vendor-modified/boost/container/allocator.hpp +4 -3
- data/src/cxx_supportlib/vendor-modified/boost/container/allocator_traits.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/container/deque.hpp +7 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/adaptive_node_pool.hpp +22 -19
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/adaptive_node_pool_impl.hpp +833 -459
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/advanced_insert_int.hpp +24 -6
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/allocator_version_traits.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/compare_functors.hpp +61 -5
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/copy_move_algo.hpp +33 -8
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/flat_tree.hpp +132 -41
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/iterator.hpp +16 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/math_functions.hpp +54 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/mpl.hpp +58 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/multiallocation_chain.hpp +28 -23
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/node_alloc_holder.hpp +167 -115
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/pair.hpp +55 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/std_fwd.hpp +3 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/thread_mutex.hpp +181 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/tree.hpp +167 -29
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/type_traits.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/variadic_templates_tools.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/workaround.hpp +18 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/flat_map.hpp +389 -3
- data/src/cxx_supportlib/vendor-modified/boost/container/flat_set.hpp +262 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/list.hpp +52 -8
- data/src/cxx_supportlib/vendor-modified/boost/container/map.hpp +364 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/pmr/monotonic_buffer_resource.hpp +4 -2
- data/src/cxx_supportlib/vendor-modified/boost/container/pmr/resource_adaptor.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/container/pmr/synchronized_pool_resource.hpp +3 -2
- data/src/cxx_supportlib/vendor-modified/boost/container/set.hpp +286 -6
- data/src/cxx_supportlib/vendor-modified/boost/container/slist.hpp +56 -8
- data/src/cxx_supportlib/vendor-modified/boost/container/small_vector.hpp +43 -6
- data/src/cxx_supportlib/vendor-modified/boost/container/stable_vector.hpp +100 -31
- data/src/cxx_supportlib/vendor-modified/boost/container/static_vector.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/container/string.hpp +126 -69
- data/src/cxx_supportlib/vendor-modified/boost/container/vector.hpp +75 -51
- data/src/cxx_supportlib/vendor-modified/boost/core/empty_value.hpp +136 -0
- data/src/cxx_supportlib/vendor-modified/boost/core/exchange.hpp +49 -0
- data/src/cxx_supportlib/vendor-modified/boost/core/explicit_operator_bool.hpp +9 -0
- data/src/cxx_supportlib/vendor-modified/boost/core/lightweight_test.hpp +101 -130
- data/src/cxx_supportlib/vendor-modified/boost/core/lightweight_test_trait.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/core/noncopyable.hpp +16 -1
- data/src/cxx_supportlib/vendor-modified/boost/core/quick_exit.hpp +59 -0
- data/src/cxx_supportlib/vendor-modified/boost/core/ref.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/core/swap.hpp +9 -2
- data/src/cxx_supportlib/vendor-modified/boost/core/typeinfo.hpp +26 -10
- data/src/cxx_supportlib/vendor-modified/boost/date_time/compiler_config.hpp +5 -0
- data/src/cxx_supportlib/vendor-modified/boost/date_time/posix_time/posix_time_duration.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/date_time/time_duration.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/detail/basic_pointerbuf.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/detail/indirect_traits.hpp +38 -47
- data/src/cxx_supportlib/vendor-modified/boost/detail/lcast_precision.hpp +5 -5
- data/src/cxx_supportlib/vendor-modified/boost/detail/reference_content.hpp +7 -7
- data/src/cxx_supportlib/vendor-modified/boost/exception/exception.hpp +62 -58
- data/src/cxx_supportlib/vendor-modified/boost/function.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/function/function_base.hpp +29 -29
- data/src/cxx_supportlib/vendor-modified/boost/function/function_template.hpp +38 -40
- data/src/cxx_supportlib/vendor-modified/boost/integer/common_factor_rt.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/avltree_algorithms.hpp +44 -44
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/bstree_algorithms.hpp +39 -39
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/circular_list_algorithms.hpp +15 -15
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/circular_slist_algorithms.hpp +7 -7
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/derivation_value_traits.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/any_node_and_algorithms.hpp +14 -14
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/avltree_node.hpp +9 -9
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/common_slist_algorithms.hpp +7 -7
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/list_iterator.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/list_node.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/node_cloner_disposer.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/rbtree_node.hpp +6 -6
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/simple_disposers.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/slist_iterator.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/slist_node.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/tree_iterator.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/tree_node.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/tree_value_compare.hpp +33 -14
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/hashtable.hpp +12 -12
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/linear_slist_algorithms.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/pointer_plus_bits.hpp +3 -0
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/rbtree_algorithms.hpp +39 -39
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/sgtree_algorithms.hpp +61 -61
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/slist.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/splaytree_algorithms.hpp +66 -66
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/treap_algorithms.hpp +54 -54
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/unordered_set.hpp +6 -2
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/unordered_set_hook.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/iterator/advance.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/iterator/distance.hpp +65 -0
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/bad_lexical_cast.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/converter_lexical.hpp +23 -23
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/converter_lexical_streams.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/converter_numeric.hpp +13 -13
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/inf_nan.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/is_character.hpp +5 -4
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/lcast_char_constants.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/lcast_unsigned_converters.hpp +5 -5
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/widest_char.hpp +5 -2
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/try_lexical_convert.hpp +18 -13
- data/src/cxx_supportlib/vendor-modified/boost/libs/regex/src/cregex.cpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/libs/system/src/error_code.cpp +16 -5
- data/src/cxx_supportlib/vendor-modified/boost/libs/thread/src/future.cpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/libs/thread/src/pthread/thread.cpp +14 -8
- data/src/cxx_supportlib/vendor-modified/boost/libs/thread/src/tss_null.cpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/math/special_functions/detail/fp_traits.hpp +13 -13
- data/src/cxx_supportlib/vendor-modified/boost/math/special_functions/math_fwd.hpp +27 -0
- data/src/cxx_supportlib/vendor-modified/boost/math/tools/config.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/move/algo/adaptive_merge.hpp +29 -6
- data/src/cxx_supportlib/vendor-modified/boost/move/algo/adaptive_sort.hpp +12 -3
- data/src/cxx_supportlib/vendor-modified/boost/move/algo/detail/adaptive_sort_merge.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/move/algo/move.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/move/algorithm.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/move/core.hpp +8 -8
- data/src/cxx_supportlib/vendor-modified/boost/move/detail/meta_utils.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/move/detail/type_traits.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/mpl/assert.hpp +23 -3
- data/src/cxx_supportlib/vendor-modified/boost/optional/detail/experimental_traits.hpp +9 -3
- data/src/cxx_supportlib/vendor-modified/boost/optional/detail/old_optional_implementation.hpp +10 -11
- data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_reference_spec.hpp +20 -1
- data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_trivially_copyable_base.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/optional/optional.hpp +211 -101
- data/src/cxx_supportlib/vendor-modified/boost/parameter/python.hpp +5 -6
- data/src/cxx_supportlib/vendor-modified/boost/pool/detail/mutex.hpp +119 -25
- data/src/cxx_supportlib/vendor-modified/boost/predef/architecture.h +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/architecture/arm.h +5 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/architecture/ptx.h +44 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/compiler.h +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/compiler/compaq.h +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/predef/compiler/nvcc.h +73 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/detail/endian_compat.h +3 -1
- data/src/cxx_supportlib/vendor-modified/boost/predef/language.h +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/language/cuda.h +52 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/make.h +4 -0
- data/src/cxx_supportlib/vendor-modified/boost/predef/os/cygwin.h +6 -1
- data/src/cxx_supportlib/vendor-modified/boost/predef/other/endian.h +1 -2
- data/src/cxx_supportlib/vendor-modified/boost/predef/version.h +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/config/config.hpp +17 -8
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/stringize.hpp +4 -0
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/wstringize.hpp +4 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/detail/gray_coded_qrng.hpp +166 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/detail/niederreiter_base2_table.hpp +513 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/detail/qrng_base.hpp +291 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/detail/sobol_table.hpp +4106 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/faure.hpp +367 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/niederreiter_base2.hpp +360 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/sobol.hpp +237 -0
- data/src/cxx_supportlib/vendor-modified/boost/range/as_literal.hpp +43 -0
- data/src/cxx_supportlib/vendor-modified/boost/range/begin.hpp +13 -5
- data/src/cxx_supportlib/vendor-modified/boost/range/concepts.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/range/detail/common.hpp +1 -3
- data/src/cxx_supportlib/vendor-modified/boost/range/detail/implementation_help.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/range/distance.hpp +11 -5
- data/src/cxx_supportlib/vendor-modified/boost/range/end.hpp +14 -6
- data/src/cxx_supportlib/vendor-modified/boost/range/has_range_iterator.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/ratio/config.hpp +6 -2
- data/src/cxx_supportlib/vendor-modified/boost/rational.hpp +55 -37
- data/src/cxx_supportlib/vendor-modified/boost/regex/concepts.hpp +3 -2
- data/src/cxx_supportlib/vendor-modified/boost/regex/config.hpp +11 -1
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/basic_regex.hpp +7 -1
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/basic_regex_creator.hpp +3 -1
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/basic_regex_parser.hpp +5 -2
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/fileiter.hpp +0 -3
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/instances.hpp +15 -4
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/match_flags.hpp +1 -2
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/match_results.hpp +12 -3
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/perl_matcher.hpp +7 -2
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/perl_matcher_common.hpp +7 -3
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/perl_matcher_non_recursive.hpp +6 -2
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_format.hpp +0 -5
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_iterator.hpp +0 -8
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_raw_buffer.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_split.hpp +3 -1
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_token_iterator.hpp +0 -8
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_traits_defaults.hpp +12 -11
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_workaround.hpp +7 -4
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/u32regex_iterator.hpp +1 -9
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/u32regex_token_iterator.hpp +2 -10
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/w32_regex_traits.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/allocate_shared_array.hpp +60 -115
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/local_counted_base.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_acc_ia64.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_aix.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_clang.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_cw_ppc.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_cw_x86.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_gcc_ia64.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_gcc_mips.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_gcc_ppc.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_gcc_sparc.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_gcc_x86.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_nt.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_pt.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_snc_ps3.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_solaris.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_spin.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_std_atomic.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_sync.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_vacpp_ppc.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_impl.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/yield_k.hpp +14 -8
- data/src/cxx_supportlib/vendor-modified/boost/system/config.hpp +4 -24
- data/src/cxx_supportlib/vendor-modified/boost/system/detail/config.hpp +57 -0
- data/src/cxx_supportlib/vendor-modified/boost/system/detail/generic_category.hpp +101 -0
- data/src/cxx_supportlib/vendor-modified/boost/system/detail/std_interoperability.hpp +141 -0
- data/src/cxx_supportlib/vendor-modified/boost/system/detail/system_category_posix.hpp +132 -0
- data/src/cxx_supportlib/vendor-modified/boost/system/error_code.hpp +775 -588
- data/src/cxx_supportlib/vendor-modified/boost/system/system_error.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/thread/detail/config.hpp +6 -0
- data/src/cxx_supportlib/vendor-modified/boost/thread/detail/move.hpp +13 -6
- data/src/cxx_supportlib/vendor-modified/boost/thread/detail/nullary_function.hpp +8 -3
- data/src/cxx_supportlib/vendor-modified/boost/thread/detail/thread.hpp +3 -1
- data/src/cxx_supportlib/vendor-modified/boost/thread/detail/thread_safety.hpp +160 -0
- data/src/cxx_supportlib/vendor-modified/boost/thread/detail/tss_hooks.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/thread/exceptions.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/thread/executors/basic_thread_pool.hpp +24 -1
- data/src/cxx_supportlib/vendor-modified/boost/thread/future.hpp +10 -1
- data/src/cxx_supportlib/vendor-modified/boost/thread/lock_guard.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/thread/lockable_traits.hpp +31 -0
- data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/condition_variable.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/condition_variable_fwd.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/mutex.hpp +8 -53
- data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/pthread_mutex_scoped_lock.hpp +73 -4
- data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/recursive_mutex.hpp +6 -6
- data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/thread_data.hpp +14 -9
- data/src/cxx_supportlib/vendor-modified/boost/thread/xtime.hpp +6 -6
- data/src/cxx_supportlib/vendor-modified/boost/throw_exception.hpp +9 -8
- data/src/cxx_supportlib/vendor-modified/boost/token_functions.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_index/stl_type_index.hpp +21 -19
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/common_arithmetic_type.hpp +3 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/config.hpp +9 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/detector.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/has_postfix_operator.hpp +55 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/has_prefix_operator.hpp +72 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/is_function_cxx_03.hpp +108 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/is_function_cxx_11.hpp +501 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/is_function_msvc10_fix.hpp +30 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/is_likely_lambda.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/is_member_function_pointer_cxx_03.hpp +117 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/is_member_function_pointer_cxx_11.hpp +557 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/is_rvalue_reference_msvc10_fix.hpp +43 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/detected.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/detected_or.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/enable_if.hpp +37 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_dereference.hpp +344 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_minus.hpp +5 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_minus_assign.hpp +5 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_plus_assign.hpp +5 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_post_decrement.hpp +21 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_post_increment.hpp +21 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_pre_decrement.hpp +21 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_pre_increment.hpp +22 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_trivial_move_assign.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/has_trivial_move_constructor.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/integral_constant.hpp +5 -15
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/intrinsics.hpp +16 -6
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_complete.hpp +3 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_copy_assignable.hpp +3 -4
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_copy_constructible.hpp +4 -6
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_detected.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_detected_convertible.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_detected_exact.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_final.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_function.hpp +4 -79
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_member_function_pointer.hpp +3 -97
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_noncopyable.hpp +39 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_nothrow_move_assignable.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_nothrow_move_constructible.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_rvalue_reference.hpp +4 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_virtual_base_of.hpp +104 -63
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/make_void.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/nonesuch.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/typeof/constant.hpp +26 -0
- data/src/cxx_supportlib/vendor-modified/boost/typeof/dmc/typeof_impl.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/typeof/encode_decode.hpp +0 -3
- data/src/cxx_supportlib/vendor-modified/boost/typeof/encode_decode_params.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/typeof/int_encoding.hpp +4 -5
- data/src/cxx_supportlib/vendor-modified/boost/typeof/modifiers.hpp +5 -5
- data/src/cxx_supportlib/vendor-modified/boost/typeof/msvc/typeof_impl.hpp +9 -9
- data/src/cxx_supportlib/vendor-modified/boost/typeof/native.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/typeof/pointers_data_members.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/typeof/register_functions_iterate.hpp +6 -6
- data/src/cxx_supportlib/vendor-modified/boost/typeof/register_mem_functions.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/typeof/template_encoding.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/typeof/template_template_param.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/typeof/type_encoding.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/typeof/typeof_impl.hpp +16 -16
- data/src/cxx_supportlib/vendor-modified/boost/typeof/vector.hpp +5 -5
- data/src/cxx_supportlib/vendor-modified/boost/typeof/vector100.hpp +201 -201
- data/src/cxx_supportlib/vendor-modified/boost/typeof/vector150.hpp +301 -301
- data/src/cxx_supportlib/vendor-modified/boost/typeof/vector200.hpp +401 -401
- data/src/cxx_supportlib/vendor-modified/boost/typeof/vector50.hpp +101 -101
- data/src/cxx_supportlib/vendor-modified/boost/utility/detail/minstd_rand.hpp +3 -0
- data/src/cxx_supportlib/vendor-modified/boost/utility/string_ref.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/utility/string_view.hpp +26 -6
- data/src/cxx_supportlib/vendor-modified/boost/version.hpp +2 -2
- data/src/helper-scripts/prespawn +1 -0
- data/src/nginx_module/ConfigGeneral/AutoGeneratedDefinitions.c +40 -0
- data/src/nginx_module/ConfigGeneral/AutoGeneratedManifestDefaultsInitialization.c +26 -0
- data/src/nginx_module/ConfigGeneral/AutoGeneratedSetterFuncs.c +48 -0
- data/src/nginx_module/Configuration.c +9 -5
- data/src/nginx_module/ContentHandler.c +5 -1
- data/src/nginx_module/LocationConfig/AutoGeneratedCreateFunction.c +15 -0
- data/src/nginx_module/LocationConfig/AutoGeneratedHeaderSerialization.c +15 -0
- data/src/nginx_module/LocationConfig/AutoGeneratedManifestGeneration.c +28 -0
- data/src/nginx_module/LocationConfig/AutoGeneratedMergeFunction.c +6 -0
- data/src/nginx_module/LocationConfig/AutoGeneratedStruct.h +11 -0
- data/src/nginx_module/MainConfig/AutoGeneratedCreateFunction.c +11 -0
- data/src/nginx_module/MainConfig/AutoGeneratedManifestGeneration.c +23 -0
- data/src/nginx_module/MainConfig/AutoGeneratedStruct.h +8 -0
- data/src/nginx_module/ngx_http_passenger_module.c +2 -0
- data/src/nodejs_supportlib/vendor-copy/winston/lib/winston/logger.js +0 -0
- data/src/ruby_native_extension/extconf.rb +7 -0
- data/src/ruby_supportlib/phusion_passenger.rb +7 -7
- data/src/ruby_supportlib/phusion_passenger/admin_tools/instance_registry.rb +8 -0
- data/src/ruby_supportlib/phusion_passenger/apache2/config_options.rb +23 -0
- data/src/ruby_supportlib/phusion_passenger/constants.rb +1 -0
- data/src/ruby_supportlib/phusion_passenger/loader_shared_helpers.rb +1 -3
- data/src/ruby_supportlib/phusion_passenger/nginx/config_options.rb +37 -0
- data/src/ruby_supportlib/phusion_passenger/platform_info/compiler.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/rack/thread_handler_extension.rb +10 -0
- data/src/ruby_supportlib/phusion_passenger/request_handler.rb +2 -2
- data/src/ruby_supportlib/phusion_passenger/request_handler/thread_handler.rb +5 -0
- data/src/ruby_supportlib/phusion_passenger/standalone/config_options_list.rb +11 -0
- data/src/ruby_supportlib/phusion_passenger/standalone/start_command/builtin_engine.rb +3 -0
- data/src/ruby_supportlib/phusion_passenger/standalone/start_command/nginx_engine.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/utils/tee_input.rb +6 -0
- data/src/ruby_supportlib/phusion_passenger/utils/unseekable_socket.rb +15 -11
- metadata +48 -7
- data/src/cxx_supportlib/vendor-modified/boost/call_traits.hpp +0 -20
- data/src/cxx_supportlib/vendor-modified/boost/detail/call_traits.hpp +0 -172
- data/src/cxx_supportlib/vendor-modified/boost/detail/no_exceptions_support.hpp +0 -17
- data/src/cxx_supportlib/vendor-modified/boost/system/detail/error_code.ipp +0 -496
@@ -8,10 +8,10 @@
|
|
8
8
|
#ifndef BOOST_SYSTEM_SYSTEM_ERROR_HPP
|
9
9
|
#define BOOST_SYSTEM_SYSTEM_ERROR_HPP
|
10
10
|
|
11
|
+
#include <boost/system/error_code.hpp>
|
11
12
|
#include <string>
|
12
13
|
#include <stdexcept>
|
13
14
|
#include <cassert>
|
14
|
-
#include <boost/system/error_code.hpp>
|
15
15
|
|
16
16
|
namespace boost
|
17
17
|
{
|
@@ -24,7 +24,7 @@ namespace boost
|
|
24
24
|
// library can be caught. See svn.boost.org/trac/boost/ticket/3697
|
25
25
|
{
|
26
26
|
public:
|
27
|
-
system_error( error_code ec )
|
27
|
+
explicit system_error( error_code ec )
|
28
28
|
: std::runtime_error(""), m_error_code(ec) {}
|
29
29
|
|
30
30
|
system_error( error_code ec, const std::string & what_arg )
|
@@ -46,8 +46,8 @@ namespace boost
|
|
46
46
|
|
47
47
|
virtual ~system_error() BOOST_NOEXCEPT_OR_NOTHROW {}
|
48
48
|
|
49
|
-
|
50
|
-
const char *
|
49
|
+
error_code code() const BOOST_NOEXCEPT { return m_error_code; }
|
50
|
+
const char * what() const BOOST_NOEXCEPT_OR_NOTHROW;
|
51
51
|
|
52
52
|
private:
|
53
53
|
error_code m_error_code;
|
@@ -11,6 +11,7 @@
|
|
11
11
|
#include <boost/config.hpp>
|
12
12
|
#include <boost/detail/workaround.hpp>
|
13
13
|
#include <boost/thread/detail/platform.hpp>
|
14
|
+
#include <boost/thread/detail/thread_safety.hpp>
|
14
15
|
|
15
16
|
//#define BOOST_THREAD_DONT_PROVIDE_INTERRUPTIONS
|
16
17
|
// ATTRIBUTE_MAY_ALIAS
|
@@ -417,6 +418,11 @@
|
|
417
418
|
#define BOOST_THREAD_INTERNAL_CLOCK_IS_MONO
|
418
419
|
#elif defined(BOOST_THREAD_CHRONO_MAC_API)
|
419
420
|
#define BOOST_THREAD_HAS_MONO_CLOCK
|
421
|
+
#elif defined(__ANDROID__)
|
422
|
+
#define BOOST_THREAD_HAS_MONO_CLOCK
|
423
|
+
#if defined(__ANDROID_API__) && __ANDROID_API__ >= 21
|
424
|
+
#define BOOST_THREAD_INTERNAL_CLOCK_IS_MONO
|
425
|
+
#endif
|
420
426
|
#else
|
421
427
|
#include <time.h> // check for CLOCK_MONOTONIC
|
422
428
|
#if defined(CLOCK_MONOTONIC)
|
@@ -350,12 +350,19 @@ namespace boost
|
|
350
350
|
#endif
|
351
351
|
|
352
352
|
#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES
|
353
|
-
|
354
|
-
|
355
|
-
|
356
|
-
|
357
|
-
|
358
|
-
|
353
|
+
template <class T>
|
354
|
+
typename decay<T>::type
|
355
|
+
decay_copy(T&& t)
|
356
|
+
{
|
357
|
+
return boost::forward<T>(t);
|
358
|
+
}
|
359
|
+
typedef void (*void_fct_ptr)();
|
360
|
+
|
361
|
+
// inline void_fct_ptr
|
362
|
+
// decay_copy(void (&t)())
|
363
|
+
// {
|
364
|
+
// return &t;
|
365
|
+
// }
|
359
366
|
#else
|
360
367
|
template <class T>
|
361
368
|
typename decay<T>::type
|
@@ -3,7 +3,7 @@
|
|
3
3
|
// Distributed under the Boost Software License, Version 1.0. (See accompanying
|
4
4
|
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
5
5
|
//
|
6
|
-
// 2013
|
6
|
+
// 2013,2018 Vicente J. Botet Escriba
|
7
7
|
// Adapt to boost from CCIA C++11 implementation
|
8
8
|
// Make use of Boost.Move
|
9
9
|
|
@@ -15,6 +15,7 @@
|
|
15
15
|
#include <boost/thread/detail/move.hpp>
|
16
16
|
#include <boost/thread/csbl/memory/shared_ptr.hpp>
|
17
17
|
#include <boost/type_traits/decay.hpp>
|
18
|
+
#include <boost/type_traits/is_same.hpp>
|
18
19
|
|
19
20
|
namespace boost
|
20
21
|
{
|
@@ -72,12 +73,16 @@ namespace boost
|
|
72
73
|
|
73
74
|
#ifdef BOOST_NO_CXX11_RVALUE_REFERENCES
|
74
75
|
template<typename F>
|
75
|
-
explicit nullary_function(F& f
|
76
|
+
explicit nullary_function(F& f
|
77
|
+
, typename disable_if<is_same<typename decay<F>::type, nullary_function>, int* >::type=0
|
78
|
+
):
|
76
79
|
impl(new impl_type<F>(f))
|
77
80
|
{}
|
78
81
|
#endif
|
79
82
|
template<typename F>
|
80
|
-
nullary_function(BOOST_THREAD_RV_REF(F) f
|
83
|
+
nullary_function(BOOST_THREAD_RV_REF(F) f
|
84
|
+
, typename disable_if<is_same<typename decay<F>::type, nullary_function>, int* >::type=0
|
85
|
+
):
|
81
86
|
impl(new impl_type<typename decay<F>::type>(thread_detail::decay_copy(boost::forward<F>(f))))
|
82
87
|
{}
|
83
88
|
|
@@ -594,7 +594,7 @@ namespace boost
|
|
594
594
|
#endif
|
595
595
|
|
596
596
|
#if defined BOOST_THREAD_USES_DATETIME
|
597
|
-
inline BOOST_SYMBOL_VISIBLE void sleep(xtime const& abs_time)
|
597
|
+
inline BOOST_SYMBOL_VISIBLE void sleep(::boost::xtime const& abs_time)
|
598
598
|
{
|
599
599
|
sleep(system_time(abs_time));
|
600
600
|
}
|
@@ -811,6 +811,7 @@ namespace boost
|
|
811
811
|
};
|
812
812
|
|
813
813
|
void BOOST_THREAD_DECL add_thread_exit_function(thread_exit_function_base*);
|
814
|
+
//#ifndef BOOST_NO_EXCEPTIONS
|
814
815
|
struct shared_state_base;
|
815
816
|
#if defined(BOOST_THREAD_PLATFORM_WIN32)
|
816
817
|
inline void make_ready_at_thread_exit(shared_ptr<shared_state_base> as)
|
@@ -824,6 +825,7 @@ namespace boost
|
|
824
825
|
#else
|
825
826
|
void BOOST_THREAD_DECL make_ready_at_thread_exit(shared_ptr<shared_state_base> as);
|
826
827
|
#endif
|
828
|
+
//#endif
|
827
829
|
}
|
828
830
|
|
829
831
|
namespace this_thread
|
@@ -0,0 +1,160 @@
|
|
1
|
+
#ifndef BOOST_THREAD_DETAIL_THREAD_SAFETY_HPP
|
2
|
+
#define BOOST_THREAD_DETAIL_THREAD_SAFETY_HPP
|
3
|
+
|
4
|
+
#if defined(__GNUC__) && !defined(__GXX_EXPERIMENTAL_CXX0X__)
|
5
|
+
//
|
6
|
+
// This is horrible, but it seems to be the only we can shut up the
|
7
|
+
// "anonymous variadic macros were introduced in C99 [-Wvariadic-macros]"
|
8
|
+
// warning that get spewed out otherwise in non-C++11 mode.
|
9
|
+
//
|
10
|
+
#pragma GCC system_header
|
11
|
+
#endif
|
12
|
+
|
13
|
+
// See https://clang.llvm.org/docs/ThreadSafetyAnalysis.html
|
14
|
+
|
15
|
+
// Un-comment to enable Thread Safety Analysis
|
16
|
+
//#define BOOST_THREAD_ENABLE_THREAD_SAFETY_ANALYSIS
|
17
|
+
|
18
|
+
// Enable thread safety attributes only with clang.
|
19
|
+
// The attributes can be safely erased when compiling with other compilers.
|
20
|
+
#if defined (BOOST_THREAD_ENABLE_THREAD_SAFETY_ANALYSIS) && defined(__clang__) && (!defined(SWIG))
|
21
|
+
#define BOOST_THREAD_ANNOTATION_ATTRIBUTE__(x) __attribute__((x))
|
22
|
+
#else
|
23
|
+
#define BOOST_THREAD_ANNOTATION_ATTRIBUTE__(x) // no-op
|
24
|
+
#endif
|
25
|
+
|
26
|
+
#define BOOST_THREAD_CAPABILITY(x) \
|
27
|
+
BOOST_THREAD_ANNOTATION_ATTRIBUTE__(capability(x))
|
28
|
+
|
29
|
+
#define BOOST_THREAD_SCOPED_CAPABILITY \
|
30
|
+
BOOST_THREAD_ANNOTATION_ATTRIBUTE__(scoped_lockable)
|
31
|
+
|
32
|
+
#define BOOST_THREAD_GUARDED_BY(x) \
|
33
|
+
BOOST_THREAD_ANNOTATION_ATTRIBUTE__(guarded_by(x))
|
34
|
+
|
35
|
+
#define BOOST_THREAD_PT_GUARDED_BY(x) \
|
36
|
+
BOOST_THREAD_ANNOTATION_ATTRIBUTE__(pt_guarded_by(x))
|
37
|
+
|
38
|
+
#define BOOST_THREAD_ACQUIRED_BEFORE(...) \
|
39
|
+
BOOST_THREAD_ANNOTATION_ATTRIBUTE__(acquired_before(__VA_ARGS__))
|
40
|
+
|
41
|
+
#define BOOST_THREAD_ACQUIRED_AFTER(...) \
|
42
|
+
BOOST_THREAD_ANNOTATION_ATTRIBUTE__(acquired_after(__VA_ARGS__))
|
43
|
+
|
44
|
+
#define BOOST_THREAD_REQUIRES(...) \
|
45
|
+
BOOST_THREAD_ANNOTATION_ATTRIBUTE__(requires_capability(__VA_ARGS__))
|
46
|
+
|
47
|
+
#define BOOST_THREAD_REQUIRES_SHARED(...) \
|
48
|
+
BOOST_THREAD_ANNOTATION_ATTRIBUTE__(requires_shared_capability(__VA_ARGS__))
|
49
|
+
|
50
|
+
#define BOOST_THREAD_ACQUIRE(...) \
|
51
|
+
BOOST_THREAD_ANNOTATION_ATTRIBUTE__(acquire_capability(__VA_ARGS__))
|
52
|
+
|
53
|
+
#define BOOST_THREAD_ACQUIRE_SHARED(...) \
|
54
|
+
BOOST_THREAD_ANNOTATION_ATTRIBUTE__(acquire_shared_capability(__VA_ARGS__))
|
55
|
+
|
56
|
+
#define BOOST_THREAD_RELEASE(...) \
|
57
|
+
BOOST_THREAD_ANNOTATION_ATTRIBUTE__(release_capability(__VA_ARGS__))
|
58
|
+
|
59
|
+
#define BOOST_THREAD_RELEASE_SHARED(...) \
|
60
|
+
BOOST_THREAD_ANNOTATION_ATTRIBUTE__(release_shared_capability(__VA_ARGS__))
|
61
|
+
|
62
|
+
#define BOOST_THREAD_TRY_ACQUIRE(...) \
|
63
|
+
BOOST_THREAD_ANNOTATION_ATTRIBUTE__(try_acquire_capability(__VA_ARGS__))
|
64
|
+
|
65
|
+
#define BOOST_THREAD_TRY_ACQUIRE_SHARED(...) \
|
66
|
+
BOOST_THREAD_ANNOTATION_ATTRIBUTE__(try_acquire_shared_capability(__VA_ARGS__))
|
67
|
+
|
68
|
+
#define BOOST_THREAD_EXCLUDES(...) \
|
69
|
+
BOOST_THREAD_ANNOTATION_ATTRIBUTE__(locks_excluded(__VA_ARGS__))
|
70
|
+
|
71
|
+
#define BOOST_THREAD_ASSERT_CAPABILITY(x) \
|
72
|
+
BOOST_THREAD_ANNOTATION_ATTRIBUTE__(assert_capability(x))
|
73
|
+
|
74
|
+
#define BOOST_THREAD_ASSERT_SHARED_CAPABILITY(x) \
|
75
|
+
BOOST_THREAD_ANNOTATION_ATTRIBUTE__(assert_shared_capability(x))
|
76
|
+
|
77
|
+
#define BOOST_THREAD_RETURN_CAPABILITY(x) \
|
78
|
+
BOOST_THREAD_ANNOTATION_ATTRIBUTE__(lock_returned(x))
|
79
|
+
|
80
|
+
#define BOOST_THREAD_NO_THREAD_SAFETY_ANALYSIS \
|
81
|
+
BOOST_THREAD_ANNOTATION_ATTRIBUTE__(no_thread_safety_analysis)
|
82
|
+
|
83
|
+
#if defined(__clang__) && (!defined(SWIG)) && defined(__FreeBSD__)
|
84
|
+
#if __has_attribute(no_thread_safety_analysis)
|
85
|
+
#define BOOST_THREAD_DISABLE_THREAD_SAFETY_ANALYSIS __attribute__((no_thread_safety_analysis))
|
86
|
+
#else
|
87
|
+
#define BOOST_THREAD_DISABLE_THREAD_SAFETY_ANALYSIS
|
88
|
+
#endif
|
89
|
+
#else
|
90
|
+
#define BOOST_THREAD_DISABLE_THREAD_SAFETY_ANALYSIS
|
91
|
+
#endif
|
92
|
+
|
93
|
+
#ifdef USE_LOCK_STYLE_THREAD_SAFETY_ATTRIBUTES
|
94
|
+
// The original version of thread safety analysis the following attribute
|
95
|
+
// definitions. These use a lock-based terminology. They are still in use
|
96
|
+
// by existing thread safety code, and will continue to be supported.
|
97
|
+
|
98
|
+
// Deprecated.
|
99
|
+
#define BOOST_THREAD_PT_GUARDED_VAR \
|
100
|
+
BOOST_THREAD_ANNOTATION_ATTRIBUTE__(pt_guarded_var)
|
101
|
+
|
102
|
+
// Deprecated.
|
103
|
+
#define BOOST_THREAD_GUARDED_VAR \
|
104
|
+
BOOST_THREAD_ANNOTATION_ATTRIBUTE__(guarded_var)
|
105
|
+
|
106
|
+
// Replaced by REQUIRES
|
107
|
+
#define BOOST_THREAD_EXCLUSIVE_LOCKS_REQUIRED(...) \
|
108
|
+
BOOST_THREAD_ANNOTATION_ATTRIBUTE__(exclusive_locks_required(__VA_ARGS__))
|
109
|
+
|
110
|
+
// Replaced by REQUIRES_SHARED
|
111
|
+
#define BOOST_THREAD_SHARED_LOCKS_REQUIRED(...) \
|
112
|
+
BOOST_THREAD_ANNOTATION_ATTRIBUTE__(shared_locks_required(__VA_ARGS__))
|
113
|
+
|
114
|
+
// Replaced by CAPABILITY
|
115
|
+
#define BOOST_THREAD_LOCKABLE \
|
116
|
+
BOOST_THREAD_ANNOTATION_ATTRIBUTE__(lockable)
|
117
|
+
|
118
|
+
// Replaced by SCOPED_CAPABILITY
|
119
|
+
#define BOOST_THREAD_SCOPED_LOCKABLE \
|
120
|
+
BOOST_THREAD_ANNOTATION_ATTRIBUTE__(scoped_lockable)
|
121
|
+
|
122
|
+
// Replaced by ACQUIRE
|
123
|
+
#define BOOST_THREAD_EXCLUSIVE_LOCK_FUNCTION(...) \
|
124
|
+
BOOST_THREAD_ANNOTATION_ATTRIBUTE__(exclusive_lock_function(__VA_ARGS__))
|
125
|
+
|
126
|
+
// Replaced by ACQUIRE_SHARED
|
127
|
+
#define BOOST_THREAD_SHARED_LOCK_FUNCTION(...) \
|
128
|
+
BOOST_THREAD_ANNOTATION_ATTRIBUTE__(shared_lock_function(__VA_ARGS__))
|
129
|
+
|
130
|
+
// Replaced by RELEASE and RELEASE_SHARED
|
131
|
+
#define BOOST_THREAD_UNLOCK_FUNCTION(...) \
|
132
|
+
BOOST_THREAD_ANNOTATION_ATTRIBUTE__(unlock_function(__VA_ARGS__))
|
133
|
+
|
134
|
+
// Replaced by TRY_ACQUIRE
|
135
|
+
#define BOOST_THREAD_EXCLUSIVE_TRYLOCK_FUNCTION(...) \
|
136
|
+
BOOST_THREAD_ANNOTATION_ATTRIBUTE__(exclusive_trylock_function(__VA_ARGS__))
|
137
|
+
|
138
|
+
// Replaced by TRY_ACQUIRE_SHARED
|
139
|
+
#define BOOST_THREAD_SHARED_TRYLOCK_FUNCTION(...) \
|
140
|
+
BOOST_THREAD_ANNOTATION_ATTRIBUTE__(shared_trylock_function(__VA_ARGS__))
|
141
|
+
|
142
|
+
// Replaced by ASSERT_CAPABILITY
|
143
|
+
#define BOOST_THREAD_ASSERT_EXCLUSIVE_LOCK(...) \
|
144
|
+
BOOST_THREAD_ANNOTATION_ATTRIBUTE__(assert_exclusive_lock(__VA_ARGS__))
|
145
|
+
|
146
|
+
// Replaced by ASSERT_SHARED_CAPABILITY
|
147
|
+
#define BOOST_THREAD_ASSERT_SHARED_LOCK(...) \
|
148
|
+
BOOST_THREAD_ANNOTATION_ATTRIBUTE__(assert_shared_lock(__VA_ARGS__))
|
149
|
+
|
150
|
+
// Replaced by EXCLUDE_CAPABILITY.
|
151
|
+
#define BOOST_THREAD_LOCKS_EXCLUDED(...) \
|
152
|
+
BOOST_THREAD_ANNOTATION_ATTRIBUTE__(locks_excluded(__VA_ARGS__))
|
153
|
+
|
154
|
+
// Replaced by RETURN_CAPABILITY
|
155
|
+
#define BOOST_THREAD_LOCK_RETURNED(x) \
|
156
|
+
BOOST_THREAD_ANNOTATION_ATTRIBUTE__(lock_returned(x))
|
157
|
+
|
158
|
+
#endif // USE_LOCK_STYLE_THREAD_SAFETY_ATTRIBUTES
|
159
|
+
|
160
|
+
#endif // BOOST_THREAD_DETAIL_THREAD_SAFETY_HPP
|
@@ -10,7 +10,7 @@
|
|
10
10
|
|
11
11
|
#include <boost/config/abi_prefix.hpp>
|
12
12
|
|
13
|
-
#if defined(
|
13
|
+
#if defined(BOOST_THREAD_WIN32)
|
14
14
|
|
15
15
|
namespace boost
|
16
16
|
{
|
@@ -58,7 +58,7 @@ namespace boost
|
|
58
58
|
//it to be linked into the Boost.Threads library.
|
59
59
|
}
|
60
60
|
|
61
|
-
#endif //defined(
|
61
|
+
#endif //defined(BOOST_THREAD_WIN32)
|
62
62
|
|
63
63
|
#include <boost/config/abi_suffix.hpp>
|
64
64
|
|
@@ -58,7 +58,7 @@ namespace boost
|
|
58
58
|
{
|
59
59
|
}
|
60
60
|
|
61
|
-
~thread_exception()
|
61
|
+
~thread_exception() BOOST_NOEXCEPT_OR_NOTHROW
|
62
62
|
{}
|
63
63
|
|
64
64
|
|
@@ -115,7 +115,7 @@ namespace boost
|
|
115
115
|
{
|
116
116
|
}
|
117
117
|
|
118
|
-
~lock_error()
|
118
|
+
~lock_error() BOOST_NOEXCEPT_OR_NOTHROW
|
119
119
|
{}
|
120
120
|
|
121
121
|
};
|
@@ -143,7 +143,7 @@ namespace boost
|
|
143
143
|
}
|
144
144
|
|
145
145
|
|
146
|
-
~thread_resource_error()
|
146
|
+
~thread_resource_error() BOOST_NOEXCEPT_OR_NOTHROW
|
147
147
|
{}
|
148
148
|
|
149
149
|
};
|
@@ -231,13 +231,36 @@ namespace executors
|
|
231
231
|
// signal to all the worker threads that there will be no more submissions.
|
232
232
|
close();
|
233
233
|
// joins all the threads before destroying the thread pool resources (e.g. the queue).
|
234
|
-
|
234
|
+
interrupt_and_join();
|
235
235
|
}
|
236
236
|
|
237
237
|
/**
|
238
238
|
* \b Effects: join all the threads.
|
239
239
|
*/
|
240
240
|
void join()
|
241
|
+
{
|
242
|
+
for (unsigned i = 0; i < threads.size(); ++i)
|
243
|
+
{
|
244
|
+
//threads[i].interrupt();
|
245
|
+
threads[i].join();
|
246
|
+
}
|
247
|
+
}
|
248
|
+
|
249
|
+
/**
|
250
|
+
* \b Effects: interrupt all the threads.
|
251
|
+
*/
|
252
|
+
void interrupt()
|
253
|
+
{
|
254
|
+
for (unsigned i = 0; i < threads.size(); ++i)
|
255
|
+
{
|
256
|
+
threads[i].interrupt();
|
257
|
+
}
|
258
|
+
}
|
259
|
+
|
260
|
+
/**
|
261
|
+
* \b Effects: interrupt and join all the threads.
|
262
|
+
*/
|
263
|
+
void interrupt_and_join()
|
241
264
|
{
|
242
265
|
for (unsigned i = 0; i < threads.size(); ++i)
|
243
266
|
{
|
@@ -15,7 +15,16 @@
|
|
15
15
|
|
16
16
|
//#define BOOST_THREAD_CONTINUATION_SYNC
|
17
17
|
|
18
|
-
#
|
18
|
+
#ifdef BOOST_NO_EXCEPTIONS
|
19
|
+
namespace boost
|
20
|
+
{
|
21
|
+
namespace detail {
|
22
|
+
struct shared_state_base {
|
23
|
+
void notify_deferred() {}
|
24
|
+
};
|
25
|
+
}
|
26
|
+
}
|
27
|
+
#else
|
19
28
|
|
20
29
|
#include <boost/thread/condition_variable.hpp>
|
21
30
|
#include <boost/thread/detail/move.hpp>
|
@@ -23,7 +23,7 @@ namespace boost
|
|
23
23
|
{
|
24
24
|
|
25
25
|
template <typename Mutex>
|
26
|
-
class lock_guard
|
26
|
+
class BOOST_THREAD_SCOPED_CAPABILITY lock_guard
|
27
27
|
{
|
28
28
|
private:
|
29
29
|
Mutex& m;
|
@@ -32,13 +32,13 @@ namespace boost
|
|
32
32
|
typedef Mutex mutex_type;
|
33
33
|
BOOST_THREAD_NO_COPYABLE( lock_guard )
|
34
34
|
|
35
|
-
explicit lock_guard(Mutex& m_) :
|
35
|
+
explicit lock_guard(Mutex& m_) BOOST_THREAD_ACQUIRE(m_) :
|
36
36
|
m(m_)
|
37
37
|
{
|
38
38
|
m.lock();
|
39
39
|
}
|
40
40
|
|
41
|
-
lock_guard(Mutex& m_, adopt_lock_t) :
|
41
|
+
lock_guard(Mutex& m_, adopt_lock_t) BOOST_THREAD_REQUIRES(m_) :
|
42
42
|
m(m_)
|
43
43
|
{
|
44
44
|
#if ! defined BOOST_THREAD_PROVIDES_NESTED_LOCKS
|
@@ -62,7 +62,7 @@ namespace boost
|
|
62
62
|
}
|
63
63
|
|
64
64
|
#endif
|
65
|
-
~lock_guard()
|
65
|
+
~lock_guard() BOOST_THREAD_RELEASE()
|
66
66
|
{
|
67
67
|
m.unlock();
|
68
68
|
}
|
@@ -11,7 +11,12 @@
|
|
11
11
|
|
12
12
|
#include <boost/assert.hpp>
|
13
13
|
#include <boost/detail/workaround.hpp>
|
14
|
+
#include <boost/type_traits/integral_constant.hpp>
|
15
|
+
#ifdef BOOST_NO_CXX11_SFINAE_EXPR
|
14
16
|
#include <boost/type_traits/is_class.hpp>
|
17
|
+
#else
|
18
|
+
#include <boost/type_traits/declval.hpp>
|
19
|
+
#endif
|
15
20
|
|
16
21
|
#include <boost/config/abi_prefix.hpp>
|
17
22
|
|
@@ -33,6 +38,7 @@ namespace boost
|
|
33
38
|
#ifndef BOOST_THREAD_NO_AUTO_DETECT_MUTEX_TYPES
|
34
39
|
namespace detail
|
35
40
|
{
|
41
|
+
#ifdef BOOST_NO_CXX11_SFINAE_EXPR
|
36
42
|
#define BOOST_THREAD_DEFINE_HAS_MEMBER_CALLED(member_name) \
|
37
43
|
template<typename T, bool=boost::is_class<T>::value> \
|
38
44
|
struct has_member_called_##member_name \
|
@@ -142,6 +148,31 @@ namespace boost
|
|
142
148
|
BOOST_STATIC_CONSTANT(
|
143
149
|
bool,value=sizeof(has_member_try_lock<T>::has_member(&T::try_lock))==sizeof(true_type));
|
144
150
|
};
|
151
|
+
#else
|
152
|
+
template<typename T,typename Enabled=void>
|
153
|
+
struct has_member_lock : false_type {};
|
154
|
+
|
155
|
+
template<typename T>
|
156
|
+
struct has_member_lock<T,
|
157
|
+
decltype(void(boost::declval<T&>().lock()))
|
158
|
+
> : true_type {};
|
159
|
+
|
160
|
+
template<typename T,typename Enabled=void>
|
161
|
+
struct has_member_unlock : false_type {};
|
162
|
+
|
163
|
+
template<typename T>
|
164
|
+
struct has_member_unlock<T,
|
165
|
+
decltype(void(boost::declval<T&>().unlock()))
|
166
|
+
> : true_type {};
|
167
|
+
|
168
|
+
template<typename T,typename Enabled=bool>
|
169
|
+
struct has_member_try_lock : false_type {};
|
170
|
+
|
171
|
+
template<typename T>
|
172
|
+
struct has_member_try_lock<T,
|
173
|
+
decltype(bool(boost::declval<T&>().try_lock()))
|
174
|
+
> : true_type {};
|
175
|
+
#endif
|
145
176
|
|
146
177
|
}
|
147
178
|
|