You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mesos.apache.org by ka...@apache.org on 2016/04/07 00:48:41 UTC
[11/11] mesos git commit: Added functions in promises to the future
header.
Added functions in promises to the future header.
Review: https://reviews.apache.org/r/44547/
Project: http://git-wip-us.apache.org/repos/asf/mesos/repo
Commit: http://git-wip-us.apache.org/repos/asf/mesos/commit/9c3a8a58
Tree: http://git-wip-us.apache.org/repos/asf/mesos/tree/9c3a8a58
Diff: http://git-wip-us.apache.org/repos/asf/mesos/diff/9c3a8a58
Branch: refs/heads/master
Commit: 9c3a8a58b644c567af3ca83a066ee5140f78050b
Parents: be1fb94
Author: Anurag Singh <an...@gmail.com>
Authored: Wed Apr 6 15:08:39 2016 -0400
Committer: Kapil Arya <ka...@mesosphere.io>
Committed: Wed Apr 6 18:36:18 2016 -0400
----------------------------------------------------------------------
3rdparty/libprocess/include/process/future.hpp | 51 +++++++++++++++++++++
1 file changed, 51 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/mesos/blob/9c3a8a58/3rdparty/libprocess/include/process/future.hpp
----------------------------------------------------------------------
diff --git a/3rdparty/libprocess/include/process/future.hpp b/3rdparty/libprocess/include/process/future.hpp
index ae4f2d6..9a335d1 100644
--- a/3rdparty/libprocess/include/process/future.hpp
+++ b/3rdparty/libprocess/include/process/future.hpp
@@ -1451,6 +1451,57 @@ bool Future<T>::fail(const std::string& _message)
return result;
}
+
+// Helper for setting a set of Promises.
+template <typename T>
+void setPromises(std::set<Promise<T>*>* promises, const T& t)
+{
+ foreach (Promise<T>* promise, *promises) {
+ promise->set(t);
+ delete promise;
+ }
+ promises->clear();
+}
+
+
+// Helper for failing a set of Promises.
+template <typename T>
+void failPromises(std::set<Promise<T>*>* promises, const std::string& failure)
+{
+ foreach (Promise<T>* promise, *promises) {
+ promise->fail(failure);
+ delete promise;
+ }
+ promises->clear();
+}
+
+
+// Helper for discarding a set of Promises.
+template <typename T>
+void discardPromises(std::set<Promise<T>*>* promises)
+{
+ foreach (Promise<T>* promise, *promises) {
+ promise->discard();
+ delete promise;
+ }
+ promises->clear();
+}
+
+
+// Helper for discarding an individual promise in the set.
+template <typename T>
+void discardPromises(std::set<Promise<T>*>* promises, const Future<T>& future)
+{
+ foreach (Promise<T>* promise, *promises) {
+ if (promise->future() == future) {
+ promise->discard();
+ promises->erase(promise);
+ delete promise;
+ return;
+ }
+ }
+}
+
} // namespace process {
#endif // __PROCESS_FUTURE_HPP__