]> git.sesse.net Git - remoteglot/commitdiff
When a position comes in with the same position but new result, copy the result over...
authorSteinar H. Gunderson <sgunderson@bigfoot.com>
Tue, 12 May 2015 23:03:43 +0000 (01:03 +0200)
committerSteinar H. Gunderson <sgunderson@bigfoot.com>
Tue, 12 May 2015 23:03:43 +0000 (01:03 +0200)
remoteglot.pl

index 9c2130cc55fca075cb853c0904614d322a7fd3e3..86c447489e2f095f8a5d7eb8a439a258ca62e693 100755 (executable)
@@ -328,13 +328,19 @@ sub handle_position {
        my ($pos) = @_;
        find_clock_start($pos);
                
-       # if this is already in the queue, ignore it
-       return if (defined($pos_waiting) && $pos->fen() eq $pos_waiting->fen());
+       # if this is already in the queue, ignore it (just update the result)
+       if (defined($pos_waiting) && $pos->fen() eq $pos_waiting->fen()) {
+               $pos_waiting->{'result'} = $pos->{'result'};
+               return;
+       }
 
        # if we're already chewing on this and there's nothing else in the queue,
        # also ignore it
-       return if (!defined($pos_waiting) && defined($pos_calculating) &&
-                $pos->fen() eq $pos_calculating->fen());
+       if (!defined($pos_waiting) && defined($pos_calculating) &&
+           $pos->fen() eq $pos_calculating->fen()) {
+               $pos_calculating->{'result'} = $pos->{'result'};
+               return;
+       }
 
        # if we're already thinking on something, stop and wait for the engine
        # to approve