Project

General

Profile

Actions

Bug #7884

closed

Tkで,コマンドにforkを入れると,イベント実行時にクラッシュする

Added by hirura (Hiroyuki URANISHI) over 11 years ago. Updated over 11 years ago.

Status:
Rejected
Target version:
ruby -v:
ruby 1.9.3p385 (2013-02-06 revision 39114) [universal.x86_64-darwin10]
Backport:
[ruby-dev:47049]

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

ruby1.9_2013-02-19-223306_mu.crash (34.7 KB) ruby1.9_2013-02-19-223306_mu.crash ~/Library/Logs/CrashReporter/ruby1.9_2013-02-19-223306_mu.crash hirura (Hiroyuki URANISHI), 02/19/2013 11:07 PM
terminal_log.txt (6.27 KB) terminal_log.txt hirura (Hiroyuki URANISHI), 02/19/2013 11:07 PM

Updated by ko1 (Koichi Sasada) over 11 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 11 years ago

  • Status changed from Open to Rejected

少なくとも現状では,callback 中の fork は非サポートです.
通常,callback は eventloop が走っている thread で実行されます.
しかも,callback が実行される際には Tcl 側と Ruby 側との処理が絡み合っています.
この状況でウィンドウシステムのイベント処理を行う thread が複製された時に生じることについて,
私には保証しきれません.

Actions

Also available in: Atom PDF

Like0
Like0Like0