Browse Source

CHECK_MLOCK updated for Windows.

git-svn-id: http://subversion.jackaudio.org/jack/jack2/trunk/jackmp@4575 0c269be4-1314-0410-8aa9-9f06e86f4224
tags/1.9.8
sletz 13 years ago
parent
commit
7cef8825c5
2 changed files with 21 additions and 6 deletions
  1. +1
    -1
      common/JackControlAPI.cpp
  2. +20
    -5
      windows/JackShmMem_os.h

+ 1
- 1
common/JackControlAPI.cpp View File

@@ -901,7 +901,7 @@ jackctl_server_open(
JackTools::CleanupFiles(server_ptr->name.str); JackTools::CleanupFiles(server_ptr->name.str);


// OS specific initialisations // OS specific initialisations
JackTools::InitOS();
//JackTools::InitOS();


if (!server_ptr->realtime.b && server_ptr->client_timeout.i == 0) { if (!server_ptr->realtime.b && server_ptr->client_timeout.i == 0) {
server_ptr->client_timeout.i = 500; /* 0.5 sec; usable when non realtime. */ server_ptr->client_timeout.i = 500; /* 0.5 sec; usable when non realtime. */


+ 20
- 5
windows/JackShmMem_os.h View File

@@ -1,20 +1,20 @@
/* /*
Copyright (C) 2004-2008 Grame Copyright (C) 2004-2008 Grame
This program is free software; you can redistribute it and/or modify This program is free software; you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published by it under the terms of the GNU Lesser General Public License as published by
the Free Software Foundation; either version 2.1 of the License, or the Free Software Foundation; either version 2.1 of the License, or
(at your option) any later version. (at your option) any later version.
This program is distributed in the hope that it will be useful, This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Lesser General Public License for more details. GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License You should have received a copy of the GNU Lesser General Public License
along with this program; if not, write to the Free Software along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/ */




@@ -25,7 +25,22 @@


// See GetProcessWorkingSetSize and SetProcessWorkingSetSize // See GetProcessWorkingSetSize and SetProcessWorkingSetSize


#define CHECK_MLOCK(ptr, size) (VirtualLock((ptr), (size)) != 0)
#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()); \
} \
} \
} \
} \
#define CHECK_MUNLOCK(ptr, size) (VirtualUnlock((ptr), (size)) != 0) #define CHECK_MUNLOCK(ptr, size) (VirtualUnlock((ptr), (size)) != 0)
#define CHECK_MLOCKALL()(false) #define CHECK_MLOCKALL()(false)
#define CHECK_MUNLOCKALL()(false) #define CHECK_MUNLOCKALL()(false)


Loading…
Cancel
Save