#!/usr/bin/env perl use strict; use warnings; use threads; use threads::shared; use MCE::Hobo; use MCE::Shared; use feature qw(say); say q(procs at start: ), procs(); my $result = MCE::Shared->array(); for (qw(foo bar nose cuke)) { MCE::Hobo->create( \&task, $_ ); } my @hobos = MCE::Hobo->list(); say q(spawned hobos:); for (@hobos) { if ( $_->is_running() ) { say q(pid: ), $_->pid(); } } say q(pending hobos: ), MCE::Hobo->pending(); say q(procs at pending: ), procs(); $_->join() for @hobos; say q(procs after join: ), procs(); say q(result:); say for @$result; sub task { $result->push(shift); } sub procs { my $procs = grep { /perl/ } qx(ps aux); } __END__ karls-mac-mini:monks karl$ ./hobo.pl procs at start: 1 spawned hobos: pid: 3835 pid: 3836 pid: 3837 pid: 3838 pending hobos: 4 procs at pending: 5 procs after join: 1 result: foo bar nose cuke