Forum: Ruby-dev [ruby-trunk - Bug #7884][Open] Tkで,コマンドにforkを入れると,イベント実行時にクラッシュする

Posted by hirura (Hiroyuki URANISHI) (Guest)
on 2013-02-19 15:07
(Received via mailing list)
Issue #7884 has been reported by hirura (Hiroyuki URANISHI).

----------------------------------------
Bug #7884: Tkで,コマンドにforkを入れると,イベント実行時にクラッシュする
https://bugs.ruby-lang.org/issues/7884

Author: hirura (Hiroyuki URANISHI)
Status: Open
Priority: Normal
Assignee:
Category:
Target version:
ruby -v: ruby 1.9.3p385 (2013-02-06 revision 39114) 
[universal.x86_64-darwin10]


題名の通りです.

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
Posted by ko1 (Koichi Sasada) (Guest)
on 2013-02-22 00:55
(Received via mailing list)
Issue #7884 has been updated by ko1 (Koichi Sasada).

Category set to ext
Assignee set to nagai (Hidetoshi Nagai)
Target version set to 2.1.0


----------------------------------------
Bug #7884: Tkで,コマンドにforkを入れると,イベント実行時にクラッシュする
https://bugs.ruby-lang.org/issues/7884#change-36727

Author: hirura (Hiroyuki URANISHI)
Status: Open
Priority: Normal
Assignee: nagai (Hidetoshi Nagai)
Category: ext
Target version: 2.1.0
ruby -v: ruby 1.9.3p385 (2013-02-06 revision 39114) 
[universal.x86_64-darwin10]


題名の通りです.

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
Posted by nagai (Hidetoshi Nagai) (Guest)
on 2013-06-17 07:20
(Received via mailing list)
Issue #7884 has been updated by nagai (Hidetoshi Nagai).

Status changed from Open to Rejected

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

----------------------------------------
Bug #7884: Tkで,コマンドにforkを入れると,イベント実行時にクラッシュする
https://bugs.ruby-lang.org/issues/7884#change-39987

Author: hirura (Hiroyuki URANISHI)
Status: Rejected
Priority: Normal
Assignee: nagai (Hidetoshi Nagai)
Category: ext
Target version: current: 2.1.0
ruby -v: ruby 1.9.3p385 (2013-02-06 revision 39114) 
[universal.x86_64-darwin10]
Backport:


題名の通りです.

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
Please log in before posting. Registration is free and takes only a minute.
Existing account (Switch to SSL-encrypted connection)
NEW: Do you have a Google/GoogleMail or Yahoo account? No registration required!
Log in with Google account | Log in with Yahoo account
No account? Register here.