use strict; use warnings; use threads; use MCE::Mutex; use MCE::Shared; use Time::HiRes 'time'; my $condvar = MCE::Shared->condvar; my $mutex = MCE::Mutex->new; # Start the shared server. Not necessary if Perl has IO::FDPass. MCE::Shared->start; sub test { $condvar->wait; for (1..10000) { threads->yield; $mutex->lock; $mutex->unlock; } } threads->create('test') for 1..3; $condvar->broadcast(0.5); my $start = time; $_->join for threads->list; printf "duration: %0.03f secs\n", time - $start;