AnyEvent-Process

 view release on metacpan or  search on metacpan

t/AnyEvent-Process-Memory-Leak.t  view on Meta::CPAN

use AnyEvent::Process;
use Errno qw(:POSIX);

SKIP: {
	eval { require Devel::SizeMe };
	skip "Devel::SizeMe is required", 1 if $@;

	my $initial_size;
	for (1..10_000) {
		my $arg = rand;
		my ( $stdout, $stderr ) = ( '', '' );
		my $cv  = AnyEvent->condvar;
		my $job = AnyEvent::Process->new(
			args          => [ $arg ],
			code          => sub { exec 'echo', @_ },
			kill_interval => 10,
			on_completion => sub {
			my ( $job, $exit ) = @_;
				$cv->send($exit);
			},
			on_kill  => sub {

t/AnyEvent-Process-Memory-Leak.t  view on Meta::CPAN

					[
						on_eof   => sub { },    # Ignore EOF
						on_read  => sub { $stdout = $_[0]->rbuf },
						on_error => sub { return if $! == EPIPE },
					]
				],
				\*STDERR => [
					qw( pipe > handle ),
					[
						on_eof   => sub { },    # Ignore EOF
						on_read  => sub { $stderr = $_[0]->rbuf },
						on_error => sub { return if $! == EPIPE },
					]
				],
			]
		);
		my $run = $job->run();
		my $return = $cv->recv;
		die $return if $return;

		$initial_size = Devel::SizeMe::perl_size() if $_ == 25;



( run in 0.515 second using v1.01-cache-2.11-cpan-49f99fa48dc )