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.
