|
Uni20
Asynchronous tensor and runtime library.
|
Awaitable capabilities for shared reads and exclusive mutable access to Async<T>.
More...
#include "async_task.hpp"#include "async_task_promise.hpp"#include "async_traits.hpp"#include "epoch_context.hpp"#include "shared_storage.hpp"#include <uni20/common/trace.hpp>#include <atomic>#include <concepts>#include <coroutine>#include <cstddef>#include <memory>#include <mutex>#include <new>#include <optional>#include <stdexcept>#include <tuple>#include <type_traits>#include <utility>Go to the source code of this file.
Classes | |
| class | uni20::async::OwningReadAccessProxy< T > |
Owning proxy returned by co_await read_buffer.transfer(). More... | |
| class | uni20::async::OwningReadAwaiter< T > |
| Awaiter that transfers a read handle into an owning read proxy. More... | |
| class | uni20::async::OwningStorageAccessProxy< T > |
| Owning proxy providing access to writer storage. More... | |
| class | uni20::async::OwningStorageAwaiter< T > |
| Awaiter that yields an owning storage-access proxy. More... | |
| class | uni20::async::OwningTakeAwaiter< T > |
| Awaiter that takes and releases a value from an owning writer. More... | |
| class | uni20::async::OwningWriteAccessProxy< T > |
Owning proxy returned by co_await write_buffer.transfer(). More... | |
| class | uni20::async::OwningWriteAwaiter< T > |
| Awaiter that transfers a writer handle into an owning write proxy. More... | |
| class | uni20::async::PropagateExceptionsAwaiter< Buffers > |
| Awaiter that registers explicit exception sinks and then resumes immediately. More... | |
| class | uni20::async::ReadBuffer< T > |
| RAII handle for reading the value from an Async container at a given epoch. More... | |
| class | uni20::async::ReadMaybeAwaiter< T > |
| Awaiter returning an optional owning read proxy. More... | |
| class | uni20::async::ReadMaybeAwaiter< T const & > |
| Awaiter returning pointer-or-null read access for lvalue buffers. More... | |
| class | uni20::async::ReadOrCancelAwaiter< T > |
Awaiter returning owning read access or throwing task_cancelled. More... | |
| class | uni20::async::ReadOrCancelAwaiter< T const & > |
Awaiter returning borrowed read access or throwing task_cancelled. More... | |
| class | uni20::async::StorageAwaiter< T > |
| Awaiter returning direct access to a writer's shared storage object. More... | |
| class | uni20::async::TakeAwaiter< T > |
| Awaiter that takes the writer value without releasing the writer epoch. More... | |
| class | uni20::async::TakeReleaseAwaiter< T > |
| Awaiter that takes a value and immediately releases the writer epoch. More... | |
| class | uni20::async::WriteAccessProxy< T > |
Non-owning proxy returned by co_await on an lvalue WriteBuffer<T>. More... | |
| class | uni20::async::WriteAssignProxy< T > |
Assignment-only proxy returned by WriteBuffer::write(). More... | |
| class | uni20::async::WriteBuffer< T > |
Exclusive mutable-access buffer for one Async<T> epoch. More... | |
Namespaces | |
| namespace | uni20 |
| namespace | uni20::async |
| This represents the reverse-mode adjoint for functions of complex variables, assuming a real-valued scalar loss function ( L \colon \mathbb{C} \to \mathbb{R} ). | |
Concepts | |
| concept | uni20::async::exception_sink_buffer |
| Concept for buffers that can register explicit exception sinks. | |
Typedefs | |
| template<typename T > | |
| using | uni20::async::OwningWriteProxy = OwningWriteAccessProxy< T > |
| Alias for the owning write access proxy type. | |
| template<typename T > | |
| using | uni20::async::WriteAwaitProxy = WriteAccessProxy< T > |
| Alias for the non-owning write access proxy type. | |
| template<typename T > | |
| using | uni20::async::WriteProxy = WriteAssignProxy< T > |
| Alias for assignment-only writer proxy. | |
Functions | |
| template<typename T > | |
| void | uni20::async::ProcessCoroutineArgument (TaskPromiseBase *promise, ReadBuffer< T > const &x) |
| Register coroutine debug dependencies for a read-buffer argument. | |
| template<typename T > | |
| void | uni20::async::ProcessCoroutineArgument (TaskPromiseBase *promise, WriteBuffer< T > const &x) |
| Register coroutine debug dependencies and exception sink for a write-buffer argument. | |
| template<exception_sink_buffer... Buffers> | |
| auto | uni20::async::propagate_exceptions_to (Buffers &... buffers) |
| Register buffers that should receive unhandled coroutine exceptions. | |
| template<typename T > | |
| ReadBuffer< T > && | uni20::async::release (ReadBuffer< T > &&in) |
| Adaptor for forwarding an rvalue ReadBuffer into an await expression. | |
| template<typename T > | |
| ReadBuffer< T > && | uni20::async::release (ReadBuffer< T > &in) |
| Adaptor for transferring ReadBuffer ownership into an await expression. | |
Awaitable capabilities for shared reads and exclusive mutable access to Async<T>.