我已經使用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