Thanks Ben.

On Thursday, July 9, 2015 at 4:34:34 AM UTC-4, Ben Noordhuis wrote:
>
> On Thu, Jul 9, 2015 at 12:18 AM, Tim Trefren <[email protected] 
> <javascript:>> wrote: 
> > Hello, 
> > 
> > I'm working on an application that executes scripts from untrusted 
> users. 
> > These scripts are expected to define a certain function that we will 
> pull 
> > out and run many times. 
> > 
> > I have implemented a watchdog thread that ensures that no single 
> function 
> > call takes too long (if it does, I assume there is an infinite loop in 
> the 
> > function). 
> > 
> > Now I am trying to limit memory usage. I investigated various approaches 
> > with setrlimit and ResourceConstraints::ConfigureDefaults but those both 
> > leave the program in a bad state when it runs out of memory. Instead, I 
> > would like to occasionally use `GetHeapStatistics` to inspect the heap 
> and 
> > error out if it has grown too large. 
> > 
> > My question is this: is it required to acquire a v8:Locker lock before 
> using 
> > GetHeapStatistics? I am passing a pointer to my isolate to the watchdog 
> > script so that it can call v8:TerminateExecution if necessary, which is 
> > explicitly allowed in the documentation. The documentation for Locker 
> says 
> > that a lock must be acquired to access handles or object pointers, but 
> it's 
> > not clear if it is required for GetHeapStatistics. 
> > 
> > Thanks, 
> > Tim 
>
> Yes, you need to acquire the isolate before calling 
> v8::Isolate::GetHeapStatistics(), it iterates over mutable data. 
>
> As a rule of thumb, if the documentation doesn't explicitly mention 
> that a function is thread-safe, it's not. 
>

-- 
-- 
v8-users mailing list
[email protected]
http://groups.google.com/group/v8-users
--- 
You received this message because you are subscribed to the Google Groups 
"v8-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to