vecmem 1.23.0
Loading...
Searching...
No Matches
async_sizes.ipp
1/*
2 * VecMem project, part of the ACTS project (R&D line)
3 *
4 * (c) 2025 CERN for the benefit of the ACTS project
5 *
6 * Mozilla Public License Version 2.0
7 */
8#pragma once
9
10namespace vecmem {
11
12template <typename SIZE_TYPE>
15
16template <typename SIZE_TYPE>
18
19 // Wait for the event to complete before accessing the value
20 m_event->wait();
21 return m_sizes;
22}
23
24template <typename SIZE_TYPE>
26
27 m_event->wait();
28}
29
30template <typename SIZE_TYPE>
32
33 m_event->ignore();
34}
35
36} // namespace vecmem
An allocator class that wraps a memory resource.
Definition allocator.hpp:37
async_sizes(storage_type &&sizes, event_type event)
Constructor taking ownership of a size and event.
Definition async_sizes.ipp:13
std::add_lvalue_reference_t< std::add_const_t< storage_type > > const_reference
Constant (lvalue) reference to the stored size.
Definition async_sizes.hpp:34
void wait() override
Function that would block the current thread until the event is complete.
Definition async_sizes.ipp:25
std::unique_ptr< abstract_event > event_type
Type of the held event.
Definition async_sizes.hpp:36
void ignore() override
Function telling the object not to wait for the underlying event.
Definition async_sizes.ipp:31
const_reference get() const
Access the async/future value.
Definition async_sizes.ipp:17
vector< size_type > storage_type
Underlying type that stores the size variables on the heap.
Definition async_sizes.hpp:31
Main namespace for the vecmem classes/functions.
Definition atomic_ref.hpp:16