2004-05-01 20:09:54 +04:00
|
|
|
Ruby/Tk does NOT support forking the process on which Tk interpreter
|
2011-05-22 13:26:02 +04:00
|
|
|
is running (unless NEVER control Tk interpreter under the forked child
|
|
|
|
process). In the library 'tk.rb', a Tk interpreter is initialized.
|
2004-05-01 20:09:54 +04:00
|
|
|
Therefore, if you want running Tk under a child process, please call
|
2011-05-22 13:26:02 +04:00
|
|
|
"require 'tk'" in the child process.
|
2004-05-01 20:09:54 +04:00
|
|
|
|
2011-05-22 13:26:02 +04:00
|
|
|
# If do fork and exec(<new Ruby/Tk>) on the child process, you can
|
|
|
|
# control Ruby/Tk interpreter on the child process by 'send' command
|
|
|
|
# of Tcl/Tk. About this, please see Tk.appsend and Tk.rb_appsend, or
|
|
|
|
# 'remote-tk.rb' and the sample 'sample/remote-ip_sample.rb'.
|
2004-05-22 00:45:27 +04:00
|
|
|
|
2004-05-01 20:09:54 +04:00
|
|
|
For example, the following sample1 will NOT work, and sample2 will
|
|
|
|
work properly.
|
|
|
|
|
|
|
|
---<sample1: NOT work>---------------------------------------
|
|
|
|
require 'tk' ## init Tk interpreter under parent process
|
|
|
|
|
|
|
|
exit! if fork ## exit parent process
|
|
|
|
|
|
|
|
## child process
|
|
|
|
TkButton.new(:text=>'QUIT', :command=>proc{exit}).pack
|
|
|
|
Tk.mainloop
|
|
|
|
-------------------------------------------------------------
|
|
|
|
|
|
|
|
---<sample2: will work>--------------------------------------
|
|
|
|
exit! if fork ## exit main process
|
|
|
|
|
|
|
|
## child process
|
|
|
|
require 'tk' ## init Tk interpreter under child process
|
|
|
|
TkButton.new(:text=>'QUIT', :command=>proc{exit}).pack
|
|
|
|
Tk.mainloop
|
|
|
|
-------------------------------------------------------------
|
|
|
|
|
2004-05-22 00:45:27 +04:00
|
|
|
2004/05/22 Hidetoshi NAGAI
|