読者です 読者をやめる 読者になる 読者になる

非同期処理関数

perl

少し前の日記で書いた関数CGI関数はCGI用なのだけれども、stdout, stderr閉じ忘れていたのでちょっと修正。

sub async(&@) {
        my $async = shift;

        unless (my $pid = fork()) {
                close(STDOUT);
                close(STDERR);

                # 子プロセスは裏で指定された処理を行う
                eval {&$async};

                if ($@) {
                        die $@;
                }
                exit(0);
        }
}