Всякий раз, когда я вызываю readdir перед созданием потока, я получаю сообщение об ошибке, похожее на это:
perl(2820,0x7fff70c33ca0) malloc: *** error for object 0x10082e600: pointer
being freed was not allocated
*** set a breakpoint in malloc_error_break to debug
Abort trap
Что странно, это происходит, когда я вызываю readdir перед тем, как создать потокне вызывается ни в каком параллельном коде).Я даже не использую результаты readdir, просто вызов этого, кажется, все испортил.Когда я избавляюсь от этого, все, кажется, работает нормально.Пример кода приведен ниже:
opendir(DIR, $someDir);
my @allFiles = readdir(DIR);
close(DIR);
my $thread = threads->create(\&sub1);
$thread->join();
sub sub1 {
print "in thread\n"
}