|
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) |
|