Repair Affinity option
authorH.G.Muller <hgm@hgm-xboard.(none)>
Fri, 10 Oct 2014 08:35:12 +0000 (10:35 +0200)
committerH.G.Muller <hgm@hgm-xboard.(none)>
Fri, 10 Oct 2014 12:39:14 +0000 (14:39 +0200)
Affinity was set in the engine startup routine, but the latter was always
done before the ini file had been completely read. The Affinity value
is now extracted explicitly from the ini file before engine startup.
The test for validity of the process handle was also reversed.
Affinity is marked as an XBoard option, but not in the standard set,
as it still would not work when set interactively. It does not work
in -noini mode, but requires an old-fashoned ini file.

book_format.html
main.c
option.c
pipex_win32.c

index b6d70bb..bd5dfd7 100644 (file)
@@ -600,5 +600,7 @@ Especially if there is a shortage of codes, the most common promotions should re
 while the 16-bit move encoding only runs upto 65,535.
 So there is only room for 6 promotion types, while 7 would be needed for the 6 possible piece types and non-promotion.)
 In asymmetric variants (e.g. Spartan Chess) the same code need not indicate the same piece type for both sides.
+</p>
+<iframe src="cgi-bin/count.cgi?H=9" width="130" height="40"></iframe>
 </body>
 
diff --git a/main.c b/main.c
index 4201385..d814152 100644 (file)
--- a/main.c
+++ b/main.c
@@ -443,6 +443,10 @@ int main(int argc, char * argv[]) {
 
         // start engine
     
+    if((entry=ini_find(ini,"polyglot","Affinity"))){ // must be known during start
+        polyglot_set_option(entry->name,entry->value);
+    }
+
     engine_open(Engine);
 
     if(!engine_active(Engine)){
index 997a0d6..3984f0d 100644 (file)
--- a/option.c
+++ b/option.c
@@ -79,7 +79,7 @@ option_t DefaultOptions[] = {
     { "UCIVersion",       "spin","1","2",       "2"         , NULL,0,NNB,  PG|XBOARD}, 
     { "CanPonder",        "check","1","2",      "false"     , NULL,0,NNB,  PG|XBOARD}, 
     { "SyncStop",         "check","1","2",      "false"     , NULL,0,NNB,  PG|XBOARD|XBSEL}, 
-    { "Affinity",         "spin","-1","32",     "-1"        , NULL,0,NNB,  PG}, 
+    { "Affinity",         "spin","-1","32",     "-1"        , NULL,0,NNB,  PG|XBOARD}, 
     { "RepeatPV",         "check","0","0",      "true"      , NULL,0,NNB,  PG|XBOARD},
     { "PromoteWorkAround","check","0","0",      "false"     , NULL,0,NNB,  PG|XBOARD},
 
index 41431b3..8924c27 100644 (file)
@@ -466,7 +466,7 @@ typedef void (WINAPI *SPAM)(HANDLE, int);
 void pipex_set_affinity(pipex_t *pipex, int value){
     SPAM pSPAM;
 
-    if(pipex->hProcess) return;
+    if(!pipex->hProcess) return;
     if(value==-1) return;
 
     pSPAM = (SPAM) GetProcAddress(