call(*args)
Instance Public methods
def #eval_proc(*args)
# The scope of the eval-block of 'eval_proc' method is different from # the external. If you want to pass local values to the eval-block, # use arguments of eval_proc method. They are passed to block-arguments. if block_given? cmd = Proc.new else unless (cmd = args.shift) fail ArgumentError, "A Proc or Method object is expected for 1st argument" end end if TclTkLib.mainloop_thread? == true # call from eventloop current = Thread.current backup_ip = current[:callback_ip] current[:callback_ip] = self begin eval_proc_core(false, proc{|safe, *params| $SAFE=safe if $SAFE < safe cmd.call(*params) }, *args) ensure current[:callback_ip] = backup_ip end else eval_proc_core(true, proc{|safe, *params| $SAFE=safe if $SAFE < safe Thread.new(*params, &cmd).value }, *args) end
end
Please login to continue.