|
|
@@ -25,22 +25,25 @@ |
|
|
|
|
|
|
|
// See GetProcessWorkingSetSize and SetProcessWorkingSetSize |
|
|
|
|
|
|
|
#define CHECK_MLOCK(ptr, size) \ |
|
|
|
{ \ |
|
|
|
if (VirtualLock((ptr), (size)) == 0) { \ |
|
|
|
SIZE_T minWSS, maxWSS; \ |
|
|
|
HANDLE hProc = GetCurrentProcess(); \ |
|
|
|
if (GetProcessWorkingSetSize(hProc, &minWSS, &maxWSS)) { \ |
|
|
|
const size_t increase = size + (10 * 4096); \ |
|
|
|
maxWSS += increase; minWSS += increase; \ |
|
|
|
if (!SetProcessWorkingSetSize(hProc, minWSS, maxWSS)) { \ |
|
|
|
jack_error("SetProcessWorkingSetSize error %d", GetLastError()); \ |
|
|
|
} else if (!VirtualLock(ptr, size)) { \ |
|
|
|
jack_error("VirtualLock error %d", GetLastError()); \ |
|
|
|
} \ |
|
|
|
} \ |
|
|
|
} \ |
|
|
|
} \ |
|
|
|
bool CHECK_MLOCK(ptr, size) |
|
|
|
{ |
|
|
|
if (!VirtualLock((ptr), (size))) { |
|
|
|
SIZE_T minWSS, maxWSS; |
|
|
|
HANDLE hProc = GetCurrentProcess(); |
|
|
|
if (GetProcessWorkingSetSize(hProc, &minWSS, &maxWSS)) { |
|
|
|
const size_t increase = size + (10 * 4096); |
|
|
|
maxWSS += increase; minWSS += increase; |
|
|
|
if (!SetProcessWorkingSetSize(hProc, minWSS, maxWSS)) { |
|
|
|
jack_error("SetProcessWorkingSetSize error %d", GetLastError()); |
|
|
|
} else if (!VirtualLock((ptr), (size))) { |
|
|
|
jack_error("VirtualLock error %d", GetLastError()); |
|
|
|
} else { |
|
|
|
return true; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
return false; |
|
|
|
} |
|
|
|
#define CHECK_MUNLOCK(ptr, size) (VirtualUnlock((ptr), (size)) != 0) |
|
|
|
#define CHECK_MLOCKALL()(false) |
|
|
|
#define CHECK_MUNLOCKALL()(false) |
|
|
|