+# 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;