* ext/tk/lib/tk.rb: fix typo and race condition.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@28131 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
nagai 2010-06-02 16:24:29 +00:00
parent 2b71200ad4
commit ed02f66eca
2 changed files with 13 additions and 4 deletions

View File

@ -1,3 +1,7 @@
Thu Jun 3 01:22:45 2010 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
* ext/tk/lib/tk.rb: fix typo and race condition.
Thu Jun 3 00:58:45 2010 Aaron Patterson <aaron@tenderlovemaking.com>
* ext/dl/lib/dl/cparser.rb (parse_ctype): add backwards compatibility

View File

@ -1229,7 +1229,8 @@ module TkCore
INTERP_ROOT_CHECK = ConditionVariable.new
INTERP_THREAD = Thread.new{
begin
Thread.current[:interp] = interp = TclTkIp.new(name, opts)
#Thread.current[:interp] = interp = TclTkIp.new(name, opts)
interp = TclTkIp.new(name, opts)
rescue => e
Thread.current[:interp] = e
raise e
@ -1248,13 +1249,15 @@ module TkCore
# like as 1.8, withdraw a root widget before calling Tk.mainloop
interp._eval <<EOS
wm withdraw .
rename wm __wm_orig__
proc wm {subcmd win args} {
eval [list __wm_orig__ $subcmd $win] $args
set val [eval [list __wm_orig__ $subcmd $win] $args]
if {[string equal $subcmd withdraw] && [string equal $win .]} {
rename wm {}
rename __wm_orig__ wm
}
return $val
}
proc __startup_rbtk_mainloop__ {args} {
rename __startup_rbtk_mainloop__ {}
@ -1275,6 +1278,7 @@ EOS
#TclTkLib.mainloop_abort_on_exception = false
#Thread.current[:status].value = TclTkLib.mainloop(true)
interp.mainloop_abort_on_exception = true
Thread.current[:interp] = interp
Thread.current[:status].value = interp.mainloop(true)
rescue SystemExit=>e
Thread.current[:status].value = e
@ -1836,7 +1840,8 @@ EOS
end
# like as 1.8, withdraw a root widget before calling Tk.mainloop
TkCore::INTERP._eval_without_enc('unset __initail_state_of_rubytk__')
TkCore::INTERP._eval_without_enc('catch {unset __initial_state_of_rubytk__}')
INTERP_THREAD.run
begin
TclTkLib.set_eventloop_window_mode(true)
@ -5693,7 +5698,7 @@ TkWidget = TkWindow
#Tk.freeze
module Tk
RELEASE_DATE = '2010-05-31'.freeze
RELEASE_DATE = '2010-06-03'.freeze
autoload :AUTO_PATH, 'tk/variable'
autoload :TCL_PACKAGE_PATH, 'tk/variable'