version 1.4w10UCIb24
[polyglot.git] / engine.cpp
index f5c53c6..b6c0f4b 100644 (file)
@@ -321,6 +321,19 @@ engine_t Engine[1];
 \r
 // functions\r
 \r
+void set_affinity(engine_t *engine, int affin){\r
+       if(affin==-1) return;\r
+    {   typedef void (WINAPI *SPAM)(HANDLE, int);\r
+       SPAM pSPAM;\r
+\r
+       pSPAM = (SPAM) GetProcAddress(\r
+           GetModuleHandle(TEXT("kernel32.dll")), \r
+           "SetProcessAffinityMask");\r
+       if(NULL != pSPAM) // [HGM] avoid crash on Win95 by first checking if API call exists\r
+           pSPAM((engine->io).hProcess,affin);\r
+    }\r
+}\r
+\r
 DWORD GetWin32Priority(int nice)\r
 {\r
 /*\r
@@ -338,21 +351,11 @@ IDLE_PRIORITY_CLASS         0x00000040
        return 0x00000040;\r
 }\r
 \r
-\r
-\r
-void set_affinity(engine_t *engine, int affin){\r
-       if(affin==-1) return;\r
-    SetProcessAffinityMask((engine->io).hProcess,affin);\r
-}\r
-\r
-// Eric Mullins!\r
-\r
 void engine_set_nice_value(engine_t *engine, int value){\r
     SetPriorityClass((engine->io).hProcess,\r
                      GetWin32Priority(value));\r
 }\r
 \r
-\r
 void engine_send_queue(engine_t * engine,const char *szFormat, ...) {\r
     nQueuePtr += vsprintf(szQueueString + nQueuePtr, szFormat, (va_list) (&szFormat + 1));\r
 }\r
@@ -375,7 +378,6 @@ void engine_close(engine_t * engine){
     (engine->io).Kill();\r
 }\r
 \r
-\r
 void engine_open(engine_t * engine){\r
     int affinity;\r
     char *my_dir;\r