in reply to Benchmark does timethese() in parallell?

The blocking is a result of "Pop" running before "Push". The input to timethese is a hashref which might imply that their relative ordering is unknown (that was my first guess... that an unordered "keys" was used). However, looking at timethese(), you can see that the incoming keys are sorted. So the Pop timing happens before the Push timing:
sub timethese{ my($n, $alt, $style) = @_; die usage unless ref $alt eq 'HASH'; my @names = sort keys %$alt; $style = "" unless defined $style; ...