You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mesos.apache.org by al...@apache.org on 2018/08/24 21:03:16 UTC

[mesos] branch master updated (5518181 -> 71b88f8)

This is an automated email from the ASF dual-hosted git repository.

alexr pushed a change to branch master
in repository https://gitbox.apache.org/repos/asf/mesos.git.


    from 5518181  Added MESOS-9177 to the 1.7.0 CHANGELOG.
     new d5468c4  Added stout wrapper for `boost::circular_buffer`.
     new 71b88f8  Replaced boost includes with stout equivalents.

The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 3rdparty/stout/include/Makefile.am                 |  1 +
 .../stout/{none.hpp => circular_buffer.hpp}        | 25 ++++++++++------------
 src/master/master.hpp                              | 13 +++--------
 src/slave/slave.cpp                                |  2 +-
 src/slave/slave.hpp                                | 14 +++++-------
 5 files changed, 21 insertions(+), 34 deletions(-)
 copy 3rdparty/stout/include/stout/{none.hpp => circular_buffer.hpp} (51%)


[mesos] 01/02: Added stout wrapper for `boost::circular_buffer`.

Posted by al...@apache.org.
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 <be...@mesosphere.com>
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__


[mesos] 02/02: Replaced boost includes with stout equivalents.

Posted by al...@apache.org.
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 71b88f865efc031b31177cdd47325787a377ca41
Author: Benno Evers <be...@mesosphere.com>
AuthorDate: Fri Aug 24 22:48:36 2018 +0200

    Replaced boost includes with stout equivalents.
    
    Replaces usages of `boost::circular_buffer` with the equivalent
    `circular_buffer` from stout in both master and slave.
    
    Review: https://reviews.apache.org/r/68503/
---
 src/master/master.hpp | 13 +++----------
 src/slave/slave.cpp   |  2 +-
 src/slave/slave.hpp   | 14 +++++---------
 3 files changed, 9 insertions(+), 20 deletions(-)

diff --git a/src/master/master.hpp b/src/master/master.hpp
index e2e9bbf..1e01dab 100644
--- a/src/master/master.hpp
+++ b/src/master/master.hpp
@@ -25,14 +25,6 @@
 #include <string>
 #include <vector>
 
-// 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>
-
 #include <mesos/mesos.hpp>
 #include <mesos/resources.hpp>
 #include <mesos/type_utils.hpp>
@@ -62,6 +54,7 @@
 
 #include <stout/boundedhashmap.hpp>
 #include <stout/cache.hpp>
+#include <stout/circular_buffer.hpp>
 #include <stout/foreach.hpp>
 #include <stout/hashmap.hpp>
 #include <stout/hashset.hpp>
@@ -2483,9 +2476,9 @@ struct Framework
   // Tasks launched by this framework that have reached a terminal
   // state and have had all their updates acknowledged. We only keep a
   // fixed-size cache to avoid consuming too much memory. We use
-  // boost::circular_buffer rather than BoundedHashMap because there
+  // circular_buffer rather than BoundedHashMap because there
   // can be multiple completed tasks with the same task ID.
-  boost::circular_buffer<process::Owned<Task>> completedTasks;
+  circular_buffer<process::Owned<Task>> completedTasks;
 
   // When an agent is marked unreachable, tasks running on it are stored
   // here. We only keep a fixed-size cache to avoid consuming too much memory.
diff --git a/src/slave/slave.cpp b/src/slave/slave.cpp
index 679394a..e6c7e68 100644
--- a/src/slave/slave.cpp
+++ b/src/slave/slave.cpp
@@ -9516,7 +9516,7 @@ Executor::Executor(
       "Max completed tasks per executor should be greater than zero");
 
   completedTasks =
-    boost::circular_buffer<shared_ptr<Task>>(MAX_COMPLETED_TASKS_PER_EXECUTOR);
+    circular_buffer<shared_ptr<Task>>(MAX_COMPLETED_TASKS_PER_EXECUTOR);
 
   // TODO(jieyu): The way we determine if an executor is generated for
   // a command task (either command or docker executor) is really
diff --git a/src/slave/slave.hpp b/src/slave/slave.hpp
index 28d6590..b1d695b 100644
--- a/src/slave/slave.hpp
+++ b/src/slave/slave.hpp
@@ -24,11 +24,6 @@
 #include <string>
 #include <vector>
 
-// See comments in `master.hpp` or MESOS-9177.
-#define BOOST_CB_DISABLE_DEBUG 1
-#define BOOST_CB_ENABLE_DEBUG 0
-#include <boost/circular_buffer.hpp>
-
 #include <mesos/attributes.hpp>
 #include <mesos/resources.hpp>
 #include <mesos/type_utils.hpp>
@@ -60,6 +55,7 @@
 
 #include <stout/boundedhashmap.hpp>
 #include <stout/bytes.hpp>
+#include <stout/circular_buffer.hpp>
 #include <stout/linkedhashmap.hpp>
 #include <stout/hashmap.hpp>
 #include <stout/hashset.hpp>
@@ -1043,9 +1039,9 @@ public:
 
   // Terminated and updates acked.
   // NOTE: We use a shared pointer for Task because clang doesn't like
-  // Boost's implementation of circular_buffer with Task (Boost
-  // attempts to do some memset's which are unsafe).
-  boost::circular_buffer<std::shared_ptr<Task>> completedTasks;
+  // stout's implementation of circular_buffer with Task (the Boost code
+  // used internally by stout attempts to do some memset's which are unsafe).
+  circular_buffer<std::shared_ptr<Task>> completedTasks;
 
   // When the slave initiates a destroy of the container, we expect a
   // termination to occur. The 'pendingTermation' indicates why the
@@ -1173,7 +1169,7 @@ public:
   // Current running executors.
   hashmap<ExecutorID, Executor*> executors;
 
-  boost::circular_buffer<process::Owned<Executor>> completedExecutors;
+  circular_buffer<process::Owned<Executor>> completedExecutors;
 
 private:
   Framework(const Framework&) = delete;