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__

Reply via email to