26 lines
731 B
C++
26 lines
731 B
C++
#include <cstdint>
|
|
#include <thread>
|
|
#include <vector>
|
|
#include "../Renderive/base/Memory.h"
|
|
namespace {
|
|
struct Payload {
|
|
std::uint64_t value{};
|
|
};
|
|
}
|
|
int main() {
|
|
std::pmr::vector<std::uint64_t> values(renderive::memory_resource());
|
|
values.resize(4096, 7);
|
|
auto owner = renderive::make_shared<Payload>();
|
|
owner->value = values.front();
|
|
if (owner->value != 7)
|
|
return 1;
|
|
std::thread release_thread([owner = std::move(owner)]() mutable {
|
|
owner.reset();
|
|
});
|
|
release_thread.join();
|
|
renderive::Memory_Stats stats = renderive::memory_stats();
|
|
if (!stats.upstream_allocation_count || !stats.upstream_current_bytes || !stats.upstream_peak_bytes)
|
|
return 2;
|
|
return 0;
|
|
}
|