Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Pro Deo in Arena

Author: Odd Gunnar Malin

Date: 14:20:09 09/02/04

Go up one level in this thread


On September 02, 2004 at 16:57:27, Odd Gunnar Malin wrote:

>On September 02, 2004 at 16:42:12, Andres Valverde wrote:
>
>>On September 02, 2004 at 16:05:28, Odd Gunnar Malin wrote:
>>
>>
>>>A quick look into the adapter sourse didn't display an easy fix there. Any
>>>signal from the gui pipe (broken pipe or handle eof) should result in a 'quit'
>>>to the engine.
>>>The reason other engine terminate is because Arena kill their process, but with
>>>the adapter inbetween it only kill the adapter and it don't get a chance to send
>>>a 'quit' to the engine.
>>>
>>
>>What about sending a "quit" to the adapter?
>>
>>
>>>Odd Gunnar
>
>Then it would try to take the engine down kindly with first stop the thinking
>process and then send a 'quit'.
>
>The actual routine looks like this:
>
>void stopServer()
>{
>  int i;
>  sendDot=0;
>
>  // Run the stop process with normal priority
>  allowPriorityChange=false;
>  server.setProcessPriority(NORMAL_PRIORITY_CLASS);
>  server.setThreadPriority(THREAD_PRIORITY_NORMAL);
>  if (engine==thinking)
>  {
>    writeServer("?");
>    i=0;
>    while (engine==thinking)
>    {
>      Sleep(250);
>      i++;
>      if (i<20) break;
>    }

Thanks for letting me show the code!
It result in a bugfix, the if statement should of course be i>20.

There is enough of time in the server.stop(...) so it isn't critical, but a bug
it is.


Odd Gunnar

>  }else if (engine==analyze)
>  {
>    writeServer("exit");
>  }
>  if (server.pi.hProcess)
>  {
>    writeServer("quit");
>    server.stop(terminateHard);
>  }else
>  {
>    if (engineStarted!=NULL)
>      SetEvent(engineStarted);
>    else
>      handles[0]=NULL;
>  }
>  allowPriorityChange=true;
>}
>
>The 'server.stop(terminateHard)' have a waitloop (5 sec.) before it kill the
>engine on terminatehard=true or leave it running if this is false.
>
>Odd Gunnar



This page took 0 seconds to execute

Last modified: Thu, 15 Apr 21 08:11:13 -0700

Current Computer Chess Club Forums at Talkchess. This site by Sean Mintz.