forked from rapidsai/rapidsmpf
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmemory_reservation.cpp
More file actions
35 lines (28 loc) · 879 Bytes
/
memory_reservation.cpp
File metadata and controls
35 lines (28 loc) · 879 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
/**
* SPDX-FileCopyrightText: Copyright (c) 2024-2025, NVIDIA CORPORATION & AFFILIATES.
* SPDX-License-Identifier: Apache-2.0
*/
#include <utility>
#include <rapidsmpf/memory/buffer_resource.hpp>
#include <rapidsmpf/memory/memory_reservation.hpp>
namespace rapidsmpf {
MemoryReservation::~MemoryReservation() noexcept {
clear();
}
void MemoryReservation::clear() noexcept {
if (size_ > 0) {
br_->release(*this, size_);
}
}
MemoryReservation::MemoryReservation(MemoryReservation&& o)
: MemoryReservation{
o.mem_type_, std::exchange(o.br_, nullptr), std::exchange(o.size_, 0)
} {}
MemoryReservation& MemoryReservation::operator=(MemoryReservation&& o) noexcept {
clear();
mem_type_ = o.mem_type_;
br_ = std::exchange(o.br_, nullptr);
size_ = std::exchange(o.size_, 0);
return *this;
}
} // namespace rapidsmpf