From d0d2efca6f2c7ff5788881322ce07ca05fc30301 Mon Sep 17 00:00:00 2001 From: sletz Date: Fri, 26 Jan 2007 20:44:31 +0000 Subject: [PATCH] Correct memory locking code on Windows git-svn-id: http://subversion.jackaudio.org/jack/jack2/trunk/jackmp@1369 0c269be4-1314-0410-8aa9-9f06e86f4224 --- common/JackShmMem.cpp | 22 ++++++---------------- common/JackShmMem.h | 4 ++++ 2 files changed, 10 insertions(+), 16 deletions(-) diff --git a/common/JackShmMem.cpp b/common/JackShmMem.cpp index f2f9c5dc..3e8412fc 100644 --- a/common/JackShmMem.cpp +++ b/common/JackShmMem.cpp @@ -93,29 +93,19 @@ void JackShmMem::operator delete(void* p, size_t size) void LockMemoryImp(void* ptr, size_t size) { -#ifdef WIN32 - int res = VirtualLock(ptr, size); -#else - int res = mlock(ptr, size); -#endif - if (res != 0) { - jack_error("Cannot lock down memory area (%s)", strerror(errno)); + if (CHECK_MLOCK(ptr, size)) { + JackLog("Succeeded in locking %u byte memory area\n", size); } else { - JackLog("Succeeded in locking %u byte memory area\n", size); + jack_error("Cannot lock down memory area (%s)", strerror(errno)); } } void UnlockMemoryImp(void* ptr, size_t size) { -#ifdef WIN32 - int res = VirtualUnlock(ptr, size); -#else - int res = munlock(ptr, size); -#endif - if (res != 0) { - jack_error("Cannot unlock down memory area (%s)", strerror(errno)); + if (CHECK_MUNLOCK(ptr, size)) { + JackLog("Succeeded in unlocking %u byte memory area\n", size); } else { - JackLog("Succeeded in unlocking %u byte memory area\n", size); + jack_error("Cannot unlock down memory area (%s)", strerror(errno)); } } diff --git a/common/JackShmMem.h b/common/JackShmMem.h index 9b51e8cc..aeaacb51 100644 --- a/common/JackShmMem.h +++ b/common/JackShmMem.h @@ -30,9 +30,13 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. #ifdef WIN32 #include + #define CHECK_MLOCK(ptr, size) (VirtualLock((ptr), (size)) != 0) + #define CHECK_MUNLOCK(ptr, size) (VirtualUnlock((ptr), (size)) != 0) #else #include #include + #define CHECK_MLOCK(ptr, size) (munlock((ptr), (size)) == 0) + #define CHECK_MUNLOCK(ptr, size) (munlock((ptr), (size)) == 0) #endif namespace Jack