13struct GpuAudioProviderPoolTestAccess;
14class WaveNetRealtimeChannel;
83 std::unique_ptr<
detail::WaveNetRealtimeChannel>
85 std::uint64_t release_budget_ns) noexcept;
88 std::unique_ptr<
detail::WaveNetRealtimeChannel>&) noexcept;
91 std::unique_ptr<Impl> impl_;
GpuAudioProviderPool(GpuAudioProviderPool &&)=delete
GpuAudioProviderPool(const Config &config)
void clear() noexcept
Destroys every warm provider.
~GpuAudioProviderPool()
Destroys every warm provider.
GpuAudioProviderPool(const GpuAudioProviderPool &)=delete
friend class GpuWaveNetRealtimeNode
Definition gpu_audio_provider_pool.hpp:77
void evict_expired() noexcept
Destroys providers held longer than keep_warm_ns.
GpuAudioProviderPool & operator=(const GpuAudioProviderPool &)=delete
GpuAudioProviderPool & operator=(GpuAudioProviderPool &&)=delete
Stats stats() const noexcept
friend struct detail::GpuAudioProviderPoolTestAccess
Definition gpu_audio_provider_pool.hpp:78
A prepared, one-stream shared-memory WaveNet session.
Definition gpu_wavenet.hpp:121
Definition gpu_audio_node.hpp:78
Definition flow_pans.hpp:19
Definition gpu_audio_provider_pool.hpp:42
std::uint64_t release_budget_ns
Budget for releasing each evicted provider.
Definition gpu_audio_provider_pool.hpp:51
std::uint32_t capacity
Warm providers kept at once; returning one more evicts the least recently returned.
Definition gpu_audio_provider_pool.hpp:47
std::uint64_t keep_warm_ns
How long a returned provider stays warm before eviction.
Definition gpu_audio_provider_pool.hpp:44
Definition gpu_audio_provider_pool.hpp:53
std::uint64_t hits
Definition gpu_audio_provider_pool.hpp:54
std::uint64_t misses
Definition gpu_audio_provider_pool.hpp:55
std::uint32_t warm_entries
Definition gpu_audio_provider_pool.hpp:58
std::uint64_t returned
Definition gpu_audio_provider_pool.hpp:56
std::uint64_t evictions
Definition gpu_audio_provider_pool.hpp:57