From: why the lucky stiff Date: 2006-08-16T10:52:30+09:00 Subject: Re: sandbox timers & block scopes On Wed, Aug 16, 2006 at 06:18:28AM +0900, MenTaLguY wrote: > Well, I was thinking of injecting a timeout exception with > rb_thread_raise() ... Mmnnn, right right yah ok, I'll look into this then. Maybe there's a way to throw something that'll circumvent ensure. > > I'm shooting for: > > > > Sandbox.new(:timeout => 10).eval(str) > > Hmm, so the timeout is cumulative for the sandbox rather than per-eval? > How do threads spawned by evals work into the accounting? Well, hmm, MenTaL, nah, no, I'd say it's not cumulative. For Try Ruby, I just need a timeout for each eval. I also timeout sandboxes after ten minutes, but that can be by the managing code I guess. sand = Sandbox.new sand.timeout = 20 sand.eval(str, :timeout => 10) # 10 second timeout sand.eval(str, :timeout => 5) # 5 second timeout sand.eval(str) # There are no plans for threading in a sandbox. And, if there ever are, it'll be for unsafe sandboxes which may not need the :timeout option. _why