Lines Matching +full:- +full:std
19 // destroy, they are not free. Using the pool vs on-demand creation and destruction yields a ~20%
32 std::stack<cupmEvent_t> pool_;
40 PetscCallCUPM(cupmEventDestroy(std::move(pool_.top()))); in finalize_()
52 PetscCall(this->register_finalize()); in allocate()
55 PetscCallCXX(*event = std::move(pool_.top())); in allocate()
66 if (auto event = std::exchange(*in_event, cupmEvent_t{})) { in deallocate()
67 if (this->registered()) { in deallocate()
68 PetscCallCXX(pool_.push(std::move(event))); in deallocate()
85 inline auto cupm_fast_event_pool() noexcept -> decltype(cupm_event_pool<T, impl::Interface<T>::cupm… in cupm_fast_event_pool()
92 inline auto cupm_timer_event_pool() noexcept -> decltype(cupm_event_pool<T, impl::Interface<T>::cup… in cupm_timer_event_pool()
98 // event-stream pairing for the async allocator. It is also used as the data member of
135 inline CUPMEvent<T>::CUPMEvent(CUPMEvent &&other) noexcept : pool_type(std::move(other)), event_(ut… in CUPMEvent()
137 static_assert(std::is_empty<impl::Interface<T>>::value, "");
145 pool_type::operator=(std::move(other)); in operator =()