diff options
author | laanwj <126646+laanwj@users.noreply.github.com> | 2022-06-14 09:15:51 +0200 |
---|---|---|
committer | laanwj <126646+laanwj@users.noreply.github.com> | 2022-06-14 09:46:28 +0200 |
commit | c5fbcf5f8d7b36bee54ac80d1027d0dccea2aa75 (patch) | |
tree | 8e086d7542ba4e742ed60ba4c09d3bae909a40c9 | |
parent | cccbc5fe3ea5ae52426203f4485b11071fbe4b6e (diff) | |
parent | 1cb42aeda37f4979923cd7e1c85febe994480de6 (diff) | |
download | bitcoin-c5fbcf5f8d7b36bee54ac80d1027d0dccea2aa75.tar.xz |
Merge bitcoin/bitcoin#25320: util: modify Win32LockedPageAllocator to query windows for limit.
1cb42aeda37f4979923cd7e1c85febe994480de6 util: modify Win32LockedPageAllocator to query windows for limit (Oskar Mendel)
Pull request description:
This PR resolves a todo within the Win32LockedPageAllocator: `// TODO is there a limit on Windows, how to get it?`.
The idea is to use the Windows API to get the limits like the posix based allocator does with `getrlimit`.
I use [GetProcessWorkingSetSize](https://docs.microsoft.com/en-us/windows/win32/api/memoryapi/nf-memoryapi-getprocessworkingsetsize) to perform this task and fallback to `return std::numeric_limits<size_t>::max();` just like the posix implementation does.
ACKs for top commit:
sipsorcery:
tACK 1cb42aeda37f4979923cd7e1c85febe994480de6.
Tree-SHA512: 7bdd8a57a4e64ee59d752417a519656e03526878462060753be4dce481eff4889fb5edc1bdbd575b707d9b2dfe255c87da9ef67baac97de9ac5e70a04c852081
-rw-r--r-- | src/support/lockedpool.cpp | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/src/support/lockedpool.cpp b/src/support/lockedpool.cpp index 6907749c6d..b7ef479675 100644 --- a/src/support/lockedpool.cpp +++ b/src/support/lockedpool.cpp @@ -202,7 +202,10 @@ void Win32LockedPageAllocator::FreeLocked(void* addr, size_t len) size_t Win32LockedPageAllocator::GetLimit() { - // TODO is there a limit on Windows, how to get it? + size_t min, max; + if(GetProcessWorkingSetSize(GetCurrentProcess(), &min, &max) != 0) { + return min; + } return std::numeric_limits<size_t>::max(); } #endif |