Я хотел бы объединить mce_loop
с темами, созданными threads->create
, но не получается. Приведенный ниже упрощенный сценарий никогда не достигает второй строки печати. Почему?
(Это работает, если я сначала создам потоки, но в моем реальном сценарии это усложнит другие части).
use MCE::Loop;
mce_loop { } (0);
print "OK\n";
threads->create (sub {});
print "never reached ..\n";
Я пробовал это, конечно, но это не меняет поведение. Спасибо, в любом случае.
С помощью (позже удаленного) примера, опубликованного Håkon Hægland, я понял, что действительно помогает в моем упрощенном примере. Я до сих пор не понимаю причину такого странного поведения.
use MCE::Loop;
mce_loop { } (0);
MCE->new ()->run; # this, but why?
print "OK\n";
threads->create (sub {});
print "never reached ..\n";
Ты забыл
use threads; use threads::shared;
? Согласно мануалу оно должно стоять передuse MCE::Loop
.