|
| template<SyncMode S = SyncMode::Blocking, GlobalCompletionEvent * C = &impl::local_gce, typename F = decltype(nullptr)> |
| auto | call (Core dest, F f) -> AUTO_INVOKE((impl::Specializer< S, C, F >::call(dest, f,&F::operator()))) |
| |
| template<SyncMode S = SyncMode::Blocking, GlobalCompletionEvent * C = &impl::local_gce, typename T = decltype(nullptr), typename F = decltype(nullptr)> |
| auto | call (GlobalAddress< T > t, F func) -> AUTO_INVOKE((impl::call< S, C >(t, func,&F::operator()))) |
| | Helper that makes it easier to implement custom delegate operations specifically on global addresses. More...
|
| |
| template<typename M , typename F > |
| auto | call (Core dest, M mutex, F func) -> decltype(func(mutex())) |
| | Try lock on remote mutex. More...
|
| |
| template<typename F > |
| auto | call_suspendable (Core dest, F func) -> decltype(func()) |
| | Alternative version of delegate::call that spawns a privateTask to allow the delegate to perform suspending actions. More...
|
| |
| template<SyncMode S = SyncMode::Blocking, GlobalCompletionEvent * C = &impl::local_gce, typename T = decltype(nullptr)> |
| T | read (GlobalAddress< T > target) |
| | Read the value (potentially remote) at the given GlobalAddress, blocks the calling task until round-trip communication is complete. More...
|
| |
| template<SyncMode S = SyncMode::Blocking, GlobalCompletionEvent * C = &impl::local_gce, typename T = decltype(nullptr), typename U = decltype(nullptr)> |
| void | write (GlobalAddress< T > target, U value) |
| | Blocking remote write. More...
|
| |
| template<SyncMode S = SyncMode::Blocking, GlobalCompletionEvent * C = &impl::local_gce, typename T = decltype(nullptr), typename U = decltype(nullptr)> |
| T | fetch_and_add (GlobalAddress< T > target, U inc) |
| | Fetch the value at target, increment the value stored there with inc and return the original value to blocking thread. More...
|
| |
| template<SyncMode S = SyncMode::Blocking, GlobalCompletionEvent * C = &impl::local_gce, typename T = decltype(nullptr), typename U = decltype(nullptr), typename V = decltype(nullptr)> |
| bool | compare_and_swap (GlobalAddress< T > target, U cmp_val, V new_val) |
| | If value at target equals cmp_val, set the value to new_val and return true, otherwise do nothing and return false. More...
|
| |
| template<SyncMode S = SyncMode::Blocking, GlobalCompletionEvent * C = &impl::local_gce, typename T = decltype(nullptr), typename U = decltype(nullptr)> |
| void | increment (GlobalAddress< T > target, U inc) |
| |