diff options
-rw-r--r-- | configure.ac | 2 | ||||
-rw-r--r-- | src/i_main.c | 96 |
2 files changed, 1 insertions, 97 deletions
diff --git a/configure.ac b/configure.ac index 8aef46fb..3e767faf 100644 --- a/configure.ac +++ b/configure.ac @@ -93,7 +93,7 @@ AC_SDL_MAIN_WORKAROUND([ AC_CHECK_LIB(m, log) AC_CHECK_HEADERS([linux/kd.h dev/isa/spkrio.h dev/speaker/speaker.h]) - AC_CHECK_FUNCS(mmap sched_setaffinity ioperm) + AC_CHECK_FUNCS(mmap ioperm) # OpenBSD I/O i386 library for I/O port access. # (64 bit has the same thing with a different name!) diff --git a/src/i_main.c b/src/i_main.c index 7d1d960d..7bbccc88 100644 --- a/src/i_main.c +++ b/src/i_main.c @@ -34,97 +34,6 @@ void D_DoomMain (void); -#if defined(_WIN32_WCE) - -// Windows CE? I doubt it even supports SMP.. - -static void LockCPUAffinity(void) -{ -} - -#elif defined(_WIN32) - -#define WIN32_LEAN_AND_MEAN -#include <windows.h> - -typedef BOOL (WINAPI *SetAffinityFunc)(HANDLE hProcess, DWORD mask); - -// This is a bit more complicated than it really needs to be. We really -// just need to call the SetProcessAffinityMask function, but that -// function doesn't exist on systems before Windows 2000. Instead, -// dynamically look up the function and call the pointer to it. This -// way, the program will run on older versions of Windows (Win9x, etc.) - -static void LockCPUAffinity(void) -{ - HMODULE kernel32_dll; - SetAffinityFunc SetAffinity; - - // Find the kernel interface DLL. - - kernel32_dll = LoadLibrary("kernel32.dll"); - - if (kernel32_dll == NULL) - { - // This should never happen... - - fprintf(stderr, "Failed to load kernel32.dll\n"); - return; - } - // Find the SetProcessAffinityMask function. - - SetAffinity = (SetAffinityFunc)GetProcAddress(kernel32_dll, "SetProcessAffinityMask"); - - // If the function was not found, we are on an old (Win9x) system - // that doesn't have this function. That's no problem, because - // those systems don't support SMP anyway. - - if (SetAffinity != NULL) - { - if (!SetAffinity(GetCurrentProcess(), 1)) - { - fprintf(stderr, "Failed to set process affinity (%d)\n", - (int) GetLastError()); - } - } -} - -#elif defined(HAVE_SCHED_SETAFFINITY) - -#include <unistd.h> -#include <sched.h> - -// Unix (Linux) version: - -static void LockCPUAffinity(void) -{ -#ifdef CPU_SET - cpu_set_t set; - - CPU_ZERO(&set); - CPU_SET(0, &set); - - sched_setaffinity(getpid(), sizeof(set), &set); -#else - unsigned long mask = 1; - sched_setaffinity(getpid(), sizeof(mask), &mask); -#endif -} - -#else - -#warning No known way to set processor affinity on this platform. -#warning You may experience crashes due to SDL_mixer. - -static void LockCPUAffinity(void) -{ - fprintf(stderr, - "WARNING: No known way to set processor affinity on this platform.\n" - " You may experience crashes due to SDL_mixer.\n"); -} - -#endif - int main(int argc, char **argv) { // save arguments @@ -132,11 +41,6 @@ int main(int argc, char **argv) myargc = argc; myargv = argv; - // Only schedule on a single core, if we have multiple - // cores. This is to work around a bug in SDL_mixer. - - LockCPUAffinity(); - M_FindResponseFile(); // start doom |