Browse Source

CHECK_MLOCK updated for Windows(2).

git-svn-id: http://subversion.jackaudio.org/jack/jack2/trunk/jackmp@4576 0c269be4-1314-0410-8aa9-9f06e86f4224
tags/1.9.8
sletz 13 years ago
parent
commit
31df097fde
1 changed files with 19 additions and 16 deletions
  1. +19
    -16
      windows/JackShmMem_os.h

+ 19
- 16
windows/JackShmMem_os.h View File

@@ -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)


Loading…
Cancel
Save