Also one note, I do not wish to dispose the whole isolate I would like to dispose the context only My usage pattern: - create fixed pool of isolates(= cores count) - allocate/dispose contexts to execute user-defined code
On Sat, Jan 9, 2016 at 4:15 PM, Sergey F. <[email protected]> wrote: > Thanks very much for the answer, Ben! > > Hm... looks like there is some other problem with my v8 usage, I just made > a quick check: > - made huge allocation of memory within the context(around 1 gb) > - do some work > - call .Reset() on all persistent handles and manually remove c++ > allocated memory > - memory allocated by context aren't being freed by V8 > > I just somehow thought it would be totally reasonable to expect v8 to call > my SetWeak callbacks when the context(and all dedicated objects within > their c++ counterparts) are being disposed > As far as I know V8 must dispose all context-allocated memory when I'm > calling Reset on context persistent handle(no other references to it) > Looks like I'm missing something fundamental > > What is the proper way to dispose V8 context and free all js-allocated > resources that belong to this particular context? > > Thanks again! > > On Sat, Jan 9, 2016 at 3:47 PM, Ben Noordhuis <[email protected]> wrote: > >> On Fri, Jan 8, 2016 at 7:59 PM, Sergey F. <[email protected]> wrote: >> > I have v8 integration which allocates some objects on c++ side, wraps >> them >> > and makes available to js code >> > Everything works perfect, when object becomes unreachable v8 GC calls >> > SetWeak callback and I'm able to free c++ allocated memory >> > >> > But when I do context disposal(via calling persistent handle .Reset() >> > method) why the remaining SetWeak callbacks aren't being triggered by >> v8? >> > Should I do this cleanup manually? >> > >> > Thanks! >> >> Weak callbacks are not guaranteed to run, so yes, you need to clean up >> manually. >> >> If your persistent handles have a class id, you can iterate over them >> with v8::Isolate::VisitHandlesWithClassIds() before disposing the >> isolate. >> >> For per-context cleanup, you'll have to devise something else. You >> could assign per-context class ids and filter on them but that may not >> be very efficient when there are many contexts. >> >> -- >> -- >> v8-users mailing list >> [email protected] >> http://groups.google.com/group/v8-users >> --- >> You received this message because you are subscribed to a topic in the >> Google Groups "v8-users" group. >> To unsubscribe from this topic, visit >> https://groups.google.com/d/topic/v8-users/z3bVyJRyCf4/unsubscribe. >> To unsubscribe from this group and all its topics, send an email to >> [email protected]. >> For more options, visit https://groups.google.com/d/optout. >> > > -- -- 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.
