Atomic-Pipe
view release on metacpan or search on metacpan
t/read_block.t view on Meta::CPAN
}
my ($r, $w) = Atomic::Pipe->pair;
my $start = time;
worker { note_sleep 10; $w->write_message("aaa\n") };
sleep 2 if $^O eq 'MSWin32';
my $msg = $r->read_message;
ok(time - $start > 6, "Blocked");
is($msg, "aaa\n", "got the message");
cleanup();
$start = time;
worker { note_sleep 10; $w->write_message("bbb\n") };
sleep 2 if $^O eq 'MSWin32';
$r->blocking(0);
t/write_block.t view on Meta::CPAN
cleanup();
worker { note_sleep 10; while (my $msg = $r->read_message) { last if $msg =~ m/END/i } };
$w->blocking(1);
$start = time;
for ( 0 .. $count ) {
$w->write_message("aa" x PIPE_BUF);
}
ok(time - $start > 5, "Blocked");
$w->write_message("END");
delete $w->{out_buffer};
cleanup();
done_testing;
( run in 0.438 second using v1.01-cache-2.11-cpan-49f99fa48dc )