Бесплатно в неправильный пул 2608aa8 не 6d3fe8 в test.pl

Ниже приведен мой код:

sub test_ms {

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

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

Когда я запускаю это, я получаю ошибку как

Бесплатно в неправильный пул 2608aa8 не 6d3fe8 в test.pl

Почему я получаю эту ошибку?

2 ответа

Perlfork говорит

В Windows системный вызов fork() недоступен

Вот почему это не работает, как ожидалось для вас. Попробуйте использовать Win32::Process::Create,

Увидеть:

Это сообщение означает, что скаляр (или массив или...), выделенный одним потоком (или интерпретатором?), Был освобожден другим. fork создает потоки, а не процессы в Windows. Это, вероятно, потому, что объект в $Excel не безопасно проходить между потоками. Создайте $Excel в теме, в которой вы собираетесь его использовать.

Другие вопросы по тегам