在test.pl上自由错误的池2608aa8而不是6d3fe8

时间:2015-02-18 10:43:20

标签: windows perl fork

以下是我的代码:

sub test_ms {

    my $coderef1 = shift;
    my $coderef2 = shift;

    if (fork() == 0) {
        &$coderef1;
        exit;
    }
    &$coderef2;
}

当我运行时,我收到错误

  

免费错误的游泳池2608aa8而不是6d3fe8在test.pl

为什么我收到此错误?

2 个答案:

答案 0 :(得分:2)

perlfork

  

在Windows上fork()系统调用不可用

这就是为什么它不按预期工作的原因。尝试使用Win32::Process::Create

见:

答案 1 :(得分:0)

该消息表示由一个线程(或解释器?)分配的标量(或数组或......)被另一个线程释放。 fork在Windows上创建线程而不是进程。这可能是因为$Excel中的对象在线程之间传递是不安全的。在您要使用它的线程中创建$Excel

相关问题