mirror of https://github.com/bitcoin/bitcoin.git
system: improve handling around GetTotalRAM()
This patch achieves two things: 1. Fix unused variable warning (https://github.com/bitcoin/bitcoin/pull/33333#discussion_r2362493046) 2. Enable GetTotalRAM() on other platforms where it was tested to work. Co-authored-by: Hennadii Stepanov <32963518+hebasto@users.noreply.github.com>
This commit is contained in:
parent
edb871cba2
commit
337a6e7386
|
@ -113,10 +113,15 @@ int GetNumCores()
|
|||
|
||||
std::optional<size_t> GetTotalRAM()
|
||||
{
|
||||
auto clamp{[](uint64_t v) { return size_t(std::min(v, uint64_t{std::numeric_limits<size_t>::max()})); }};
|
||||
[[maybe_unused]] auto clamp{[](uint64_t v) { return size_t(std::min(v, uint64_t{std::numeric_limits<size_t>::max()})); }};
|
||||
#ifdef WIN32
|
||||
if (MEMORYSTATUSEX m{}; (m.dwLength = sizeof(m), GlobalMemoryStatusEx(&m))) return clamp(m.ullTotalPhys);
|
||||
#elif defined(__linux__) || defined(__APPLE__)
|
||||
#elif defined(__APPLE__) || \
|
||||
defined(__FreeBSD__) || \
|
||||
defined(__NetBSD__) || \
|
||||
defined(__OpenBSD__) || \
|
||||
defined(__illumos__) || \
|
||||
defined(__linux__)
|
||||
if (long p{sysconf(_SC_PHYS_PAGES)}, s{sysconf(_SC_PAGESIZE)}; p > 0 && s > 0) return clamp(1ULL * p * s);
|
||||
#endif
|
||||
return std::nullopt;
|
||||
|
|
Loading…
Reference in New Issue