|
Uni20
Asynchronous tensor and runtime library.
|
Runtime backend attempt optionally carrying a deferred kernel task. More...
#include <kernel_task.hpp>
Public Types | |
| using | task_type = Task |
Public Member Functions | |
| KernelAttempt | attempt () const noexcept |
| Return the runtime acceptance result. | |
| bool | has_task () const noexcept |
| Return whether successful execution still requires awaiting a task. | |
| KernelTaskAttempt (KernelAttempt attempt) noexcept | |
| Construct a completed attempt without deferred work. | |
| KernelTaskAttempt (KernelTaskAttempt &&) noexcept=default | |
| KernelTaskAttempt (KernelTaskAttempt const &)=delete | |
| KernelTaskAttempt (Task task) noexcept | |
| Construct a successful attempt with deferred work. | |
| KernelTaskAttempt & | operator= (KernelTaskAttempt &&) noexcept=default |
| KernelTaskAttempt & | operator= (KernelTaskAttempt const &)=delete |
| Task | take_task () && |
| Transfer the deferred task from a successful attempt. | |
Runtime backend attempt optionally carrying a deferred kernel task.
A decline carries no task and must satisfy the ordinary clean-decline contract, including its allowance for provisional preparation of operation-declared replaceable outputs. Success without a task represents an operation that is already complete, such as an empty output. Success with a task commits the backend once that task is awaited; later failures are terminal exceptions rather than backend declines.
| using uni20::linalg::KernelTaskAttempt< Task >::task_type = Task |
|
inlineexplicitnoexcept |
Construct a completed attempt without deferred work.
|
inlineexplicitnoexcept |
Construct a successful attempt with deferred work.
|
delete |
|
defaultnoexcept |
|
inlinenoexcept |
Return the runtime acceptance result.
|
inlinenoexcept |
Return whether successful execution still requires awaiting a task.
|
defaultnoexcept |
|
delete |
|
inline |
Transfer the deferred task from a successful attempt.