1

我想在fasync下面使用类似于threads async. 我是否忘记了什么,是否有一些此处未涵盖的极端案例?

sub fasync(&) {
  my ($worker) = @_;

  my $pid = fork() // die "can't fork!";

  if (!$pid) {
    $worker->();
    exit(0);
  }

  return sub {
    my ($flags) = @_;
    return waitpid($pid, $flags // 0);
  }
}

my @join = map {
  my $job = $_;
  fasync {

    print "$job\n";
  };
} 1 .. 10;

$_->() for @join;
4

1 回答 1

4

看起来它应该可以正常工作,尽管应该有一个错误检查fork(它undef在失败时返回),如果你想要在孩子和父母之间或不同孩子之间进行任何沟通的方式,它需要详细说明。

于 2013-06-17T19:28:51.557 回答