mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
* ext/tk/lib/multi-tk.rb: improve exit operation
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@6918 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
bdd1ba494b
commit
7b66963f61
2 changed files with 71 additions and 55 deletions
|
@ -1,3 +1,7 @@
|
||||||
|
Fri Sep 17 16:07:09 2004 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
|
||||||
|
|
||||||
|
* ext/tk/lib/multi-tk.rb: improve exit operation
|
||||||
|
|
||||||
Fri Sep 17 15:01:57 2004 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
|
Fri Sep 17 15:01:57 2004 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
|
||||||
|
|
||||||
* ext/tcltklib/tcltklib.c: fix SEGV when (thread_)vwait or
|
* ext/tcltklib/tcltklib.c: fix SEGV when (thread_)vwait or
|
||||||
|
|
|
@ -194,11 +194,13 @@ class MultiTkIp
|
||||||
ip._invoke(name, 'eval', 'destroy', '.')
|
ip._invoke(name, 'eval', 'destroy', '.')
|
||||||
rescue Exception
|
rescue Exception
|
||||||
end
|
end
|
||||||
begin
|
|
||||||
# safe_base?
|
# safe_base?
|
||||||
ip._eval_without_enc("::safe::interpConfigure #{name}")
|
if ip._eval_without_enc("catch {::safe::interpConfigure #{name}}") == '0'
|
||||||
ip._eval_without_enc("::safe::interpDelete #{name}")
|
begin
|
||||||
rescue Exception
|
ip._eval_without_enc("::safe::interpDelete #{name}")
|
||||||
|
rescue Exception
|
||||||
|
end
|
||||||
end
|
end
|
||||||
=begin
|
=begin
|
||||||
if ip._invoke('interp', 'exists', name) == '1'
|
if ip._invoke('interp', 'exists', name) == '1'
|
||||||
|
@ -240,23 +242,26 @@ class MultiTkIp
|
||||||
rescue Exception
|
rescue Exception
|
||||||
end
|
end
|
||||||
=end
|
=end
|
||||||
begin
|
# safe_base?
|
||||||
# safe_base?
|
if @interp._eval_without_enc("catch {::safe::interpConfigure #{name}}") == '0'
|
||||||
@interp._eval_without_enc("::safe::interpConfigure #{name}")
|
begin
|
||||||
@interp._eval_without_enc("::safe::interpDelete #{name}")
|
@interp._eval_without_enc("::safe::interpDelete #{name}")
|
||||||
rescue Exception
|
rescue Exception
|
||||||
if subip.respond_to?(:safe_base?) && subip.safe_base? &&
|
|
||||||
!subip.deleted?
|
|
||||||
# do 'exit' to call the delete_hook procedure
|
|
||||||
begin
|
|
||||||
subip._eval_without_enc('exit')
|
|
||||||
rescue Exception
|
|
||||||
end
|
|
||||||
else
|
else
|
||||||
begin
|
next if subip.deleted?
|
||||||
subip.delete unless subip.deleted?
|
end
|
||||||
rescue Exception
|
end
|
||||||
end
|
if subip.respond_to?(:safe_base?) && subip.safe_base? &&
|
||||||
|
!subip.deleted?
|
||||||
|
# do 'exit' to call the delete_hook procedure
|
||||||
|
begin
|
||||||
|
subip._eval_without_enc('exit')
|
||||||
|
rescue Exception
|
||||||
|
end
|
||||||
|
else
|
||||||
|
begin
|
||||||
|
subip.delete unless subip.deleted?
|
||||||
|
rescue Exception
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
}
|
}
|
||||||
|
@ -298,7 +303,7 @@ class MultiTkIp
|
||||||
if e.backtrace[0] =~ /^(.+?):(\d+):in `(exit|exit!|abort)'/
|
if e.backtrace[0] =~ /^(.+?):(\d+):in `(exit|exit!|abort)'/
|
||||||
ret = ($3 == 'exit')
|
ret = ($3 == 'exit')
|
||||||
unless @interp.deleted?
|
unless @interp.deleted?
|
||||||
@slave_ip_tbl.each_value{|subip|
|
@slave_ip_tbl.each{|name, subip|
|
||||||
_destroy_slaves_of_slaveIP(subip)
|
_destroy_slaves_of_slaveIP(subip)
|
||||||
begin
|
begin
|
||||||
subip._eval_without_enc("foreach i [after info] {after cancel $i}")
|
subip._eval_without_enc("foreach i [after info] {after cancel $i}")
|
||||||
|
@ -310,23 +315,26 @@ class MultiTkIp
|
||||||
rescue Exception
|
rescue Exception
|
||||||
end
|
end
|
||||||
=end
|
=end
|
||||||
begin
|
# safe_base?
|
||||||
# safe_base?
|
if @interp._eval_without_enc("catch {::safe::interpConfigure #{name}}") == '0'
|
||||||
@interp._eval_without_enc("::safe::interpConfigure #{name}")
|
begin
|
||||||
@interp._eval_without_enc("::safe::interpDelete #{name}")
|
@interp._eval_without_enc("::safe::interpDelete #{name}")
|
||||||
rescue Exception
|
rescue Exception
|
||||||
if subip.respond_to?(:safe_base?) && subip.safe_base? &&
|
|
||||||
!subip.deleted?
|
|
||||||
# do 'exit' to call the delete_hook procedure
|
|
||||||
begin
|
|
||||||
subip._eval_without_enc('exit')
|
|
||||||
rescue Exception
|
|
||||||
end
|
|
||||||
else
|
else
|
||||||
begin
|
next if subip.deleted?
|
||||||
subip.delete unless subip.deleted?
|
end
|
||||||
rescue Exception
|
end
|
||||||
end
|
if subip.respond_to?(:safe_base?) && subip.safe_base? &&
|
||||||
|
!subip.deleted?
|
||||||
|
# do 'exit' to call the delete_hook procedure
|
||||||
|
begin
|
||||||
|
subip._eval_without_enc('exit')
|
||||||
|
rescue Exception
|
||||||
|
end
|
||||||
|
else
|
||||||
|
begin
|
||||||
|
subip.delete unless subip.deleted?
|
||||||
|
rescue Exception
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
}
|
}
|
||||||
|
@ -1784,7 +1792,7 @@ class MultiTkIp
|
||||||
end
|
end
|
||||||
|
|
||||||
def delete
|
def delete
|
||||||
@slave_ip_tbl.each_value{|subip|
|
@slave_ip_tbl.each{|name, subip|
|
||||||
_destroy_slaves_of_slaveIP(subip)
|
_destroy_slaves_of_slaveIP(subip)
|
||||||
=begin
|
=begin
|
||||||
begin
|
begin
|
||||||
|
@ -1796,23 +1804,27 @@ class MultiTkIp
|
||||||
subip._eval_without_enc("foreach i [after info] {after cancel $i}")
|
subip._eval_without_enc("foreach i [after info] {after cancel $i}")
|
||||||
rescue Exception
|
rescue Exception
|
||||||
end
|
end
|
||||||
begin
|
|
||||||
# safe_base?
|
# safe_base?
|
||||||
@interp._eval_without_enc("::safe::interpConfigure #{name}")
|
if @interp._eval_without_enc("catch {::safe::interpConfigure #{name}}") == '0'
|
||||||
@interp._eval_without_enc("::safe::interpDelete #{name}")
|
begin
|
||||||
rescue Exception
|
@interp._eval_without_enc("::safe::interpDelete #{name}")
|
||||||
if subip.respond_to?(:safe_base?) && subip.safe_base? &&
|
rescue Exception
|
||||||
!subip.deleted?
|
|
||||||
# do 'exit' to call the delete_hook procedure
|
|
||||||
begin
|
|
||||||
subip._eval_without_enc('exit')
|
|
||||||
rescue Exception
|
|
||||||
end
|
|
||||||
else
|
else
|
||||||
begin
|
next if subip.deleted?
|
||||||
subip.delete unless subip.deleted?
|
end
|
||||||
rescue Exception
|
end
|
||||||
end
|
if subip.respond_to?(:safe_base?) && subip.safe_base? &&
|
||||||
|
!subip.deleted?
|
||||||
|
# do 'exit' to call the delete_hook procedure
|
||||||
|
begin
|
||||||
|
subip._eval_without_enc('exit')
|
||||||
|
rescue Exception
|
||||||
|
end
|
||||||
|
else
|
||||||
|
begin
|
||||||
|
subip.delete unless subip.deleted?
|
||||||
|
rescue Exception
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue