struct final
DependentSendChainA sequenced chain of sends ordered by termination detection.
Public static functions
- static void mergeChainStep(DependentSendChain& a, DependentSendChain& b, EpochType new_epoch, PendingSend&& link)
- Add a task that is dependent on two DependentSendChain instances.
Constructors, destructors, conversion operators
- DependentSendChain()
- DependentSendChain(const DependentSendChain&) deleted
- DependentSendChain(DependentSendChain&&) defaulted
- ~DependentSendChain() defaulted
Public functions
- void add(EpochType new_epoch, PendingSend&& link)
- Add a task to the chain for work.
- void done()
- Indicate that the chain is complete and should be reset.
- auto isTerminated() -> bool
- Check if the chain has terminated.
- auto operator=(const DependentSendChain&) -> DependentSendChain& deleted
- auto operator=(DependentSendChain&&) -> DependentSendChain& defaulted
Function documentation
static void vt:: messaging:: DependentSendChain:: mergeChainStep(DependentSendChain& a,
DependentSendChain& b,
EpochType new_epoch,
PendingSend&& link)
Add a task that is dependent on two DependentSendChain instances.
Parameters | |
---|---|
a in | the first DependentSendChain |
b in | the second DependentSendChain |
new_epoch in | the epoch the task is being added to |
link in | the PendingSend to release when complete |
vt:: messaging:: DependentSendChain:: DependentSendChain(const DependentSendChain&) deleted
This structure is move-only and cannot be copied by design
void vt:: messaging:: DependentSendChain:: add(EpochType new_epoch,
PendingSend&& link)
Add a task to the chain for work.
Parameters | |
---|---|
new_epoch in | the epoch the task is being added to |
link in | the PendingSend to release when complete |
Add a task to the chain of work to be run in the specified epoch, with subsequent tasks dependent on all work occurring in the specified epoch
bool vt:: messaging:: DependentSendChain:: isTerminated()
Check if the chain has terminated.
Returns | whether the chain has terminated |
---|