- if ($r eq $dump) {
- $ok = 1;
- } else {
-# warn "# expected $dump, got $r";
-FLUSH:
- while ($r =~ /^!warn:(.*)/) {
- warn "# $1";
- warn "# flushing for $a seconds\n";
- eval {
- local $SIG{ALRM} = sub { die 'timeout' };
- alarm $a;
- $r = <$rdr>;
- $a = alarm 0;
- };
- if ($@) {
- $snd->reset;
- respawn;
- last FLUSH;
- }
- }
- sleep 1;
- }