Actions
Bug #7884
closedTkで,コマンドにforkを入れると,イベント実行時にクラッシュする
    Bug #7884:
    Tkで,コマンドにforkを入れると,イベント実行時にクラッシュする
  
ruby -v:
ruby 1.9.3p385 (2013-02-06 revision 39114) [universal.x86_64-darwin10]
Backport:
Description
題名の通りです.
MacPortsからインストールした
1.9.3-p327+mactk
1.9.3-p385+mactk
で同じ症状でした.
以下,ソースです.forkブロック中の,p 'forked process'は表示されます.ウィンドウ終了しませんでした.
require 'tk'
tkroot = TkRoot.new
content = Tk::Tile::Frame.new( tkroot ).grid
Tk::Tile::Button.new( content ){
text 'OK'
command{
pid = fork{ p 'forked process' }
th = Process.detach( pid )
p th.value
}
}.grid
Tk.mainloop
Files
        
           Updated by ko1 (Koichi Sasada) over 12 years ago
          Updated by ko1 (Koichi Sasada) over 12 years ago
          
          
        
        
      
      - Category set to ext
- Assignee set to nagai (Hidetoshi Nagai)
- Target version set to 2.1.0
        
           Updated by nagai (Hidetoshi Nagai) over 12 years ago
          Updated by nagai (Hidetoshi Nagai) over 12 years ago
          
          
        
        
      
      - Status changed from Open to Rejected
少なくとも現状では,callback 中の fork は非サポートです.
通常,callback は eventloop が走っている thread で実行されます.
しかも,callback が実行される際には Tcl 側と Ruby 側との処理が絡み合っています.
この状況でウィンドウシステムのイベント処理を行う thread が複製された時に生じることについて,
私には保証しきれません.
Actions