Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
snake_case xbt/future.hpp
[simgrid.git] / include / simgrid / kernel / future.hpp
index f0c8cac..bc45b50 100644 (file)
@@ -137,7 +137,7 @@ private:
  *  You are not expected to use them directly but to create them
  *  implicitely through a @ref simgrid::kernel::Promise.
  *  Alternatively kernel operations could inherit or contain FutureState
- *  if they are managed with @ref std::shared_ptr.
+ *  if they are managed with std::shared_ptr.
  **/
 template<class T>
 class FutureState : public FutureStateBase {
@@ -210,10 +210,8 @@ void bindPromise(Promise<T> promise, Future<T> future)
   class PromiseBinder {
   public:
     explicit PromiseBinder(Promise<T> promise) : promise_(std::move(promise)) {}
-    void operator()(Future<T> future)
-    {
-      simgrid::xbt::setPromise(promise_, future);
-    }
+    void operator()(Future<T> future) { simgrid::xbt::set_promise(promise_, future); }
+
   private:
     Promise<T> promise_;
   };
@@ -261,7 +259,7 @@ template<class T> Future<T> unwrapFuture(Future<Future<T>> future);
  *  );
  *  </pre>
  *
- *  This is based on C++1z @ref std::future but with some differences:
+ *  This is based on C++1z std::future but with some differences:
  *
  *  * there is no thread synchronization (atomic, mutex, condition variable,
  *    etc.) because everything happens in the SimGrid event loop;
@@ -327,8 +325,7 @@ public:
       throw std::future_error(std::future_errc::no_state);
     // Give shared-ownership to the continuation:
     auto state = std::move(state_);
-    state->set_continuation(simgrid::xbt::makeTask(
-      std::move(continuation), state));
+    state->set_continuation(simgrid::xbt::make_task(std::move(continuation), state));
   }
 
   /** Attach a continuation to this future
@@ -347,15 +344,13 @@ public:
     Promise<R> promise;
     Future<R> future = promise.get_future();
     // ...and when the current future is ready...
-    state->set_continuation(simgrid::xbt::makeTask(
-      [](Promise<R> promise, std::shared_ptr<FutureState<T>> state, F continuation) {
-        // ...set the new future value by running the continuation.
-        Future<T> future(std::move(state));
-        simgrid::xbt::fulfillPromise(promise,[&]{
-          return continuation(std::move(future));
-        });
-      },
-      std::move(promise), state, std::move(continuation)));
+    state->set_continuation(simgrid::xbt::make_task(
+        [](Promise<R> promise, std::shared_ptr<FutureState<T>> state, F continuation) {
+          // ...set the new future value by running the continuation.
+          Future<T> future(std::move(state));
+          simgrid::xbt::fulfill_promise(promise, [&] { return continuation(std::move(future)); });
+        },
+        std::move(promise), state, std::move(continuation)));
     return std::move(future);
   }
 
@@ -390,7 +385,7 @@ public:
   /** Get the value from the future
    *
    *  The future must be valid and ready in order to make this call.
-   *  @ref std::future blocks when the future is not ready but we are
+   *  std::future blocks when the future is not ready but we are
    *  completely single-threaded so blocking would be a deadlock.
    *  After the call, the future becomes invalid.
    *
@@ -424,7 +419,7 @@ Future<T> unwrapFuture(Future<Future<T>> future)
  *  A @ref Promise is connected to some `Future` and can be used to
  *  set its result.
  *
- *  Similar to @ref std::promise
+ *  Similar to std::promise
  *
  *  <code>
  *  // Create a promise and a future: