我已经使用Perl TK和线程编写了一个GUI。一切都很好,直到程序退出。此时我收到了分段错误。我相信我尽我所能管理我的线程,并且分段错误仅仅是由于Perl 5.8.8版中的线程造成的。我知道这个版本很旧,但因工作原因我无法更新。所以,我的问题是,我可以简单地隐藏分段错误吗?或者,是否有彻底清理线程的绝对方法?我不认为我的代码是相关的,由于问题的性质,但这里是我结束我的主题:使用线程和Perl隐藏分段错误Perl 5.8.8 TK
my $thr = threads->create(\&worker); ##this is created before any TK objects
sub worker {
while($run){
##do thready-stuff here
}
}
sub OnExit {
$run=0;
exit 0;
}
其中$运行的共享变量和&的OnExit绑定到窗口被关闭。如果我删除了$ run = 0,那么我得到一个关于退出程序的错误,并且有一个额外的线程正在运行,所以我非常确定这会结束它。再次,我相信我的错误是由于版本限制,所以我只是想隐藏它。谢谢!
如何关闭Perl/TK?你在做$ mainwin->销毁还是退出? – stark 2012-08-15 21:40:15
我只是使用出口。 $ mainwin->销毁帮助吗?我会在此期间进行调查。 – Glicholas 2012-08-16 13:30:33
我有这个问题,但它似乎只发生在Windows 7,现在Windows XP。我们使用相同的古代perl 5.8.8。和PerlTK。 – 2013-07-25 20:17:27