when I tested the new Crafty 22.0 under the Chessbase Gui (with Wb2UCI) it didn't reach even the first position of the Marathon test. So I turned on the log mode of WB2Uci and discovered a command sequence wich crashes crafty. I was able to reproduce this with the crafty console like this:
and Crafty quits silentlyWhite(1): mt 2
max threads set to 2
White(1): anaylze
Analyze Mode: type "exit" to terminate.
time surplus 0.00 time limit 57.00 (+27.00) (3:30)
depth time score variation (1)
starting thread 1
10 0.11 0.16 1. d4 Nf6 2. Nc3 d5 3. Nf3 Bf5 4. Bf4
...
exit
White(1): exit
analyze.White(1): analyze complete.
White(1): new
Next step was that I looked for changes in lock.h and thread.h since crafty 21.6.
In thread.c
Code: Select all
/*
************************************************************
* *
* if we are waiting on a block and the busy count is now *
* zero, we simply return to finish up the bookkeeping at *
* that point. *
* *
************************************************************
*/
Unlock(shared->lock_smp);
if (shared->thread[tid] == waiting)
return (0);
if (shared->quit || shared->thread[tid] == (TREE *) - 1) {
Lock(shared->lock_io);
shared->smp_threads--;
Unlock(shared->lock_io);
exit(0);
}
Sorry that I can't present a sound solution but it's a starting point.
Btw I used the MS compiler that comes with the Windows Server 2003 R2 Platform SDK. Os is Win XP64.
Regards,
Michael


