This is an automated email from the ASF dual-hosted git repository. alexr pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/mesos.git
commit d5468c47951cd28ad054df76b17609b7d15b255f Author: Benno Evers <[email protected]> AuthorDate: Fri Aug 24 22:48:26 2018 +0200 Added stout wrapper for `boost::circular_buffer`. Added a new file `stout/circular_buffer.hpp` that pulls the `boost::circular_buffer` class into the global namespace to ensure the boost header is always used with the correct macro definitions when included from Mesos. Review: https://reviews.apache.org/r/68502/ --- 3rdparty/stout/include/Makefile.am | 1 + 3rdparty/stout/include/stout/circular_buffer.hpp | 26 ++++++++++++++++++++++++ 2 files changed, 27 insertions(+) diff --git a/3rdparty/stout/include/Makefile.am b/3rdparty/stout/include/Makefile.am index 0a4ea7b..a9c61fc 100644 --- a/3rdparty/stout/include/Makefile.am +++ b/3rdparty/stout/include/Makefile.am @@ -25,6 +25,7 @@ nobase_include_HEADERS = \ stout/cpp17.hpp \ stout/cache.hpp \ stout/check.hpp \ + stout/circular_buffer.hpp \ stout/duration.hpp \ stout/dynamiclibrary.hpp \ stout/elf.hpp \ diff --git a/3rdparty/stout/include/stout/circular_buffer.hpp b/3rdparty/stout/include/stout/circular_buffer.hpp new file mode 100644 index 0000000..28b53c4 --- /dev/null +++ b/3rdparty/stout/include/stout/circular_buffer.hpp @@ -0,0 +1,26 @@ +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#ifndef __STOUT_CIRCULAR_BUFFER_HPP__ +#define __STOUT_CIRCULAR_BUFFER_HPP__ + +// Using `boost::circular_buffer::debug_iterator` can lead to segfaults +// because they are not thread-safe (see MESOS-9177), so we must ensure +// they're disabled. Both versions of this macro are needed to account +// for differences between older and newer Boost versions. +#define BOOST_CB_DISABLE_DEBUG 1 +#define BOOST_CB_ENABLE_DEBUG 0 +#include <boost/circular_buffer.hpp> + +using boost::circular_buffer; + +#endif // __STOUT_CIRCULAR_BUFFER_HPP__
