You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mesos.apache.org by bm...@apache.org on 2014/04/09 02:28:26 UTC
git commit: Added support for constructing a Future from a Try.
Repository: mesos
Updated Branches:
refs/heads/master 497186dd3 -> 9197058ae
Added support for constructing a Future from a Try.
Review: https://reviews.apache.org/r/20106
Project: http://git-wip-us.apache.org/repos/asf/mesos/repo
Commit: http://git-wip-us.apache.org/repos/asf/mesos/commit/9197058a
Tree: http://git-wip-us.apache.org/repos/asf/mesos/tree/9197058a
Diff: http://git-wip-us.apache.org/repos/asf/mesos/diff/9197058a
Branch: refs/heads/master
Commit: 9197058aedbe28200aeda9f1da5234c47440f94a
Parents: 497186d
Author: Ritwik Yadav <ri...@gmail.com>
Authored: Tue Apr 8 17:19:30 2014 -0700
Committer: Benjamin Mahler <bm...@twitter.com>
Committed: Tue Apr 8 17:28:04 2014 -0700
----------------------------------------------------------------------
3rdparty/libprocess/include/process/future.hpp | 15 +++++++++++++++
3rdparty/libprocess/src/tests/process_tests.cpp | 16 ++++++++++++++++
2 files changed, 31 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/mesos/blob/9197058a/3rdparty/libprocess/include/process/future.hpp
----------------------------------------------------------------------
diff --git a/3rdparty/libprocess/include/process/future.hpp b/3rdparty/libprocess/include/process/future.hpp
index 37c04c3..f394a96 100644
--- a/3rdparty/libprocess/include/process/future.hpp
+++ b/3rdparty/libprocess/include/process/future.hpp
@@ -31,6 +31,7 @@
#include <stout/none.hpp>
#include <stout/option.hpp>
#include <stout/preprocessor.hpp>
+#include <stout/try.hpp>
namespace process {
@@ -95,6 +96,8 @@ public:
/*implicit*/ Future(const Future<T>& that);
+ /*implicit*/ Future(const Try<T>& t);
+
~Future();
// Futures are assignable (and copyable). This results in the
@@ -1013,6 +1016,18 @@ Future<T>::Future(const Future<T>& that)
template <typename T>
+Future<T>::Future(const Try<T>& t)
+ : data(new Data())
+{
+ if (t.isSome()){
+ set(t.get());
+ } else {
+ fail(t.error());
+ }
+}
+
+
+template <typename T>
Future<T>::~Future() {}
http://git-wip-us.apache.org/repos/asf/mesos/blob/9197058a/3rdparty/libprocess/src/tests/process_tests.cpp
----------------------------------------------------------------------
diff --git a/3rdparty/libprocess/src/tests/process_tests.cpp b/3rdparty/libprocess/src/tests/process_tests.cpp
index 9dae931..ff0ee75 100644
--- a/3rdparty/libprocess/src/tests/process_tests.cpp
+++ b/3rdparty/libprocess/src/tests/process_tests.cpp
@@ -32,6 +32,7 @@
#include <stout/os.hpp>
#include <stout/stringify.hpp>
#include <stout/stopwatch.hpp>
+#include <stout/try.hpp>
#include <stout/tuple.hpp>
#include "encoder.hpp"
@@ -1691,3 +1692,18 @@ TEST(Process, defers)
defer(functor));
}
#endif // __cplusplus >= 201103L
+
+
+TEST(Future, FromTry)
+{
+ Try<int> t = 1;
+ Future<int> future = t;
+
+ ASSERT_TRUE(future.isReady());
+ EXPECT_EQ(1, future.get());
+
+ t = Error("error");
+ future = t;
+
+ ASSERT_TRUE(future.isFailed());
+}