On Wed, 2007-03-07 at 22:53 +0100, Gunnar Farneback wrote:
- To abort the asynchronous genmove, the controller should send the (synchronous) command abort_async_genmove. If the engine has not returned the asynchronous genmove response before responding to the abort command, it is no longer allowed to return a move. I'm open
for discussion on the exact name and whether it should return an error if the move had already been sent (I don't think it should).
But what about race conditions here? The engine may be responding to the async_genmove command an instant before it realizes an abort command just arrived. In this case it would be violating your rule but it wouldn't be anyone's fault.
I agree that this should not be considered an error. It should simply be ignored by the controller.
I also agree that genmove should not expect the engine to make the move. Even though it's not a a big deal I think the original GTP protocol should also have specified it this way. A specific command should be sent to actually apply the move to the game board. Of course this is more important with the asynchronous version.
- Don