Hopefully fix the infamous select issues.
authorSteinar H. Gunderson <sesse@debian.org>
Sat, 16 Jun 2007 00:13:26 +0000 (02:13 +0200)
committerSteinar H. Gunderson <sesse@debian.org>
Sat, 16 Jun 2007 00:13:26 +0000 (02:13 +0200)
remoteglot.pl

index c64fb41..4911b2c 100644 (file)
@@ -63,10 +63,11 @@ $t->cmd("observe $target");
 print "FICS ready.\n";
 while (1) {
        my $rin = '';
+       my $rout;
        vec($rin, fileno(UCIREAD), 1) = 1;
        vec($rin, fileno($t), 1) = 1;
 
-       my ($nfound, $timeleft) = select($rin, undef, undef, 5.0);
+       my ($nfound, $timeleft) = select($rout=$rin, undef, undef, 5.0);
        my $sleep = 1.0;
 
        while (1) {
@@ -89,7 +90,7 @@ while (1) {
        }
        
        # any fun on the UCI channel?
-       if (vec($rin, fileno(UCIREAD), 1)) {
+       if ($nfound > 0 && vec($rout, fileno(UCIREAD), 1) == 1) {
                my $line = <UCIREAD>;
                chomp $line;
                $line =~ tr/\r//d;