From bd6706e65f78318fc50aa68996fd2f534a9d38c7 Mon Sep 17 00:00:00 2001 From: zeromus Date: Sat, 7 Feb 2009 03:54:42 +0000 Subject: [PATCH] lock down processor affinity. --- src/drivers/win/OutputDS.cpp | 1 + src/drivers/win/main.cpp | 2 ++ src/lua-engine.cpp | 1 + 3 files changed, 4 insertions(+) diff --git a/src/drivers/win/OutputDS.cpp b/src/drivers/win/OutputDS.cpp index 45bfc377..91dcf292 100644 --- a/src/drivers/win/OutputDS.cpp +++ b/src/drivers/win/OutputDS.cpp @@ -252,6 +252,7 @@ void OAKRA_Module_OutputDS::beginThread() { threadData = new ThreadData(); ((ThreadData *)threadData)->ds = this; HANDLE updateThread = CreateThread(0,0,updateProc,threadData,0,&updateThreadId); + SetThreadAffinityMask(updateThread,1); SetThreadPriority(updateThread,THREAD_PRIORITY_TIME_CRITICAL); //SetThreadPriority(updateThread,THREAD_PRIORITY_HIGHEST); } diff --git a/src/drivers/win/main.cpp b/src/drivers/win/main.cpp index 9d9bfb5f..77b3800b 100644 --- a/src/drivers/win/main.cpp +++ b/src/drivers/win/main.cpp @@ -557,6 +557,8 @@ void initDirectories() #include "x6502.h" int main(int argc,char *argv[]) { + SetThreadAffinityMask(GetCurrentThread(),1); + printf("%08x",opsize); char *t; diff --git a/src/lua-engine.cpp b/src/lua-engine.cpp index 4db4049c..3704c8fb 100644 --- a/src/lua-engine.cpp +++ b/src/lua-engine.cpp @@ -1490,6 +1490,7 @@ static int fceu_exec_time(lua_State *L) goEvent = CreateEvent(0,true,false,0); DWORD threadid; HANDLE thread = CreateThread(0,0,fceu_exec_time_proc,(LPVOID)L,0,&threadid); + SetThreadAffinityMask(thread,1); //wait for the lua thread to start WaitForSingleObject(readyEvent,INFINITE); ResetEvent(readyEvent);