Perlについての質問箱 35箱目
at TECH
[
2ch
|
▼Menu
]
■コピペモード
□
スレを通常表示
□
オプションモード
□このスレッドのURL
■項目テキスト
400:デフォルトの名無しさん 08/06/09 01:10:43 WinXP、perl5.8.8、でPerl/Tkからボタンを押した時にthreadsを使ってバックグラウンド処理をしようと考えています。 バックグラウンド処理そのものは最後まで実行されますが、終了同期を取ろうとjoinを呼び出した時に、クラッシュして更に、Free from wrong pool during global… となります。 これを回避出来た猛者はいますか? 401:有吉 ◆01z1p9gzeo 08/06/09 01:43:25 子プロセスから親プロセスのTkウィジェットにアクセスするとactiveperlが落ちてしまいます。 $top = MainWindow->new(); $frame1=$top->Frame(-height=>25)->pack(-side=>top,-fill=>'x',-expand=>'no'); $listbox1 = $frame1->Scrolled('Listbox',-scrollbars=>'osoe')->pack(-fill=>'both',-expand=>'yes'); $listbox1_ref = \$listbox1; if ($pid = fork()) { MainLoop; } else { &refresh($listbox1_ref); } sub refresh { my $listbox1_ref = shift; $$listbox1_ref->delete(0,'end'); opendir(DIR,'mail/'); @file = sort readdir(DIR); @file = grep(!/^\.\.|^\./,@file); foreach(@file) { my $time = localtime((stat "mail/$_")[9]); $$listbox1_ref->insert('end',$time); } } ログには Free to wrong pool 1ec5020 not 274dc8 at C:/Perl/site/lib/Tk.pm line 250. と出て終わってるようです。refreshの処理中に落ちてるみたいです。 ググったところ、同じ症状の方もいるようですがこの場合の解決策が見つかりませんでした。 子プロセスから親プロセスのウィジェットにはアクセスできないのでしょうか?ご教授ください。OSはWinXP SP2です。
次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
レスジャンプ
mixiチェック!
Twitterに投稿
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch
5387日前に更新/139 KB
担当:undef