15#include "RConfigure.h"
25#if !defined(__ROOTCLING__) && !defined(G__DICTIONARY)
26#error "Cannot use ROOT::Experimental::Async without defining R__USE_IMT."
33namespace Experimental {
47 std::unique_ptr<TTaskGroup>
fTg{
nullptr};
78namespace Experimental {
84 template <
class Function,
class... Args>
90 TFuture(std::future<T> &&fut, std::unique_ptr<TTaskGroup> &&tg)
106 template <
class Function,
class... Args>
112 TFuture(std::future<void> &&fut, std::unique_ptr<TTaskGroup> &&tg)
127 template <
class Function,
class... Args>
133 TFuture(std::future<T &> &&fut, std::unique_ptr<TTaskGroup> &&tg)
134 :
ROOT::Detail::TFutureImpl<
T &>(std::
forward<std::future<
T &>>(fut), std::move(tg)){};
137 TFuture(std::future<T &> &&fut) :
ROOT::Detail::TFutureImpl<
T &>(std::
forward<std::future<
T &>>(fut)){};
142 return this->fStdFut.get();
150template <
class Function,
class... Args>
160 auto thisPt = std::make_shared<std::packaged_task<Ret_t()>>(std::bind(
f, args...));
162 tg->Run([thisPt]() { (*thisPt)(); });
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t Float_t Float_t Int_t Int_t UInt_t UInt_t Rectangle_t Int_t Int_t Window_t TString Int_t GCValues_t GetPrimarySelectionOwner GetDisplay GetScreen GetColormap GetNativeEvent const char const char dpyName wid window const char font_name cursor keysym reg const char only_if_exist regb h Point_t winding char text const char depth char const char Int_t count const char ColorStruct_t color const char Pixmap_t Pixmap_t PictureAttributes_t attr const char char ret_data h unsigned char height h Atom_t Int_t ULong_t ULong_t unsigned char prop_list Atom_t Atom_t Atom_t Time_t type
Double_t(* Function)(Double_t)
TFutureImpl(std::future< T > &&fut, std::unique_ptr< TTaskGroup > &&tg)
TFutureImpl< T > & operator=(TFutureImpl< T > &other)=delete
TFutureImpl & operator=(std::future< T > &&other)
TFutureImpl(const TFutureImpl< T > &other)=delete
TFutureImpl< T > & operator=(TFutureImpl< T > &&other)=default
TFutureImpl(TFutureImpl< T > &&other)
TFutureImpl(std::future< T > &&fut)
std::unique_ptr< TTaskGroup > fTg
A TFuture class. It can wrap an std::future.
TFuture(std::future< T > &&fut)
TFuture(std::future< T > &&fut, std::unique_ptr< TTaskGroup > &&tg)
friend TFuture< typename std::result_of< typename std::decay< Function >::type(typename std::decay< Args >::type...)>::type > Async(Function &&f, Args &&... args)
Runs a function asynchronously potentially in a new thread and returns a ROOT TFuture that will hold ...
A class to manage the asynchronous execution of work items.
TFuture< typename std::result_of< typename std::decay< Function >::type(typename std::decay< Args >::type...)>::type > Async(Function &&f, Args &&... args)
Runs a function asynchronously potentially in a new thread and returns a ROOT TFuture that will hold ...
void(off) SmallVectorTemplateBase< T
This file contains a specialised ROOT message handler to test for diagnostic in unit tests.
void forward(const LAYERDATA &prevLayerData, LAYERDATA &currLayerData)
apply the weights (and functions) in forward direction of the DNN