Uni20
Asynchronous tensor and runtime library.
Loading...
Searching...
No Matches
Classes | Namespaces | Functions | Variables
async.hpp File Reference

The Async<T> container: coroutine‐safe asynchronous read/write. More...

#include "async_errors.hpp"
#include "async_node.hpp"
#include "async_traits.hpp"
#include "buffers.hpp"
#include "epoch_queue.hpp"
#include <concepts>
#include <initializer_list>
#include <memory>
#include <string>
#include <type_traits>
#include <uni20/common/demangle.hpp>
#include <uni20/config.hpp>
#include <utility>
#include "async_impl.hpp"
Include dependency graph for async/async.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  uni20::async::Async< T >
 Async<T> is a container for coroutine-safe asynchronous read/write. More...
 
struct  uni20::async::async_do_not_start_t
 Tag type to construct an Async without starting the queue object. 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} ).
 

Functions

template<typename T , typename U >
requires (!is_async_alias_v<T> && detail::async_source<U> && std::constructible_from<T, async_value_t<U> const&>)
void uni20::async::async_initialize (Async< T > &destination, U &&source)
 Initialize a fresh independent async value from another async source.
 
template<typename Alias , typename Parent , typename... Args>
Async< Alias > uni20::async::make_async_alias (Async< Parent > const &parent, Args &&... args)
 Construct an async alias that retains a parent value and shares its epoch queue.
 
template<typename Alias , typename Parent , typename... Args>
Async< Alias > uni20::async::make_async_alias_from_parent (Async< Parent > &parent, Args &&... args)
 Construct an async alias from a mutable parent descriptor.
 
template<typename Alias , typename Parent , typename... Args>
Async< Alias > uni20::async::make_async_alias_from_parent (Async< Parent > const &parent, Args &&... args)
 Construct a read-only async alias from a parent descriptor.
 
template<typename T >
ReadBuffer< T > uni20::async::read (Async< T > const &a)
 Convenience helper that forwards to Async<T>::read().
 
template<typename T >
WriteBuffer< T > uni20::async::write (Async< T > &a)
 Convenience helper that forwards to Async<T>::write().
 

Variables

constexpr async_do_not_start_t uni20::async::async_do_not_start {}
 Tag constant to construct an Async without starting the queue object.
 

Detailed Description

The Async<T> container: coroutine‐safe asynchronous read/write.