Changes between Version 1 and Version 3 of Ticket #3593


Ignore:
Timestamp:
01/29/2016 11:09:16 AM (4 years ago)
Author:
sergz
Comment:

Legend:

Unmodified
Added
Removed
Modified
  • Ticket #3593

    • Property Blocked By changed from to 3594, 3595
  • Ticket #3593 – Description

    v1 v3  
    66 
    77=== What to change === 
    8 - Find what keeps `JsEngine` to stay alive, that prevents the isolate from deallocating (see ''Already known leaks''), and eliminate that behaviour. It seems that will be a set of other issues. Here we could add some tests (see ''Tests notes''). 
     8- Find what keeps `JsEngine` to stay alive, that prevents the isolate from deallocating (some already known leaks are in ''Blocked by''), and eliminate that behaviour. It seems that will be a set of other issues. Here we could add some tests (see ''Tests notes''). 
    99- Switch from using `v8::Isolate::GetCurrent()` to `v8::Isolate::New()` and `v8::Isolate::Dispose()`.  
    1010- (see ''Additional notes'') Get rid of the hack with shared isolate by JsEngine in tests. We likely don't need to inject isolate into JsEngine, so make v8::Isolate wrapper as a plain JsEngine member. 
     
    4040One can find it in https://codereview.adblockplus.org/6233220328718336/. 
    4141 
    42 === Already known leaks === 
    43 - The circular reference problem. `JsEngine` has member `JsValuePtr globalJsObject;` which has `JsEnginePtr jsEngine;` member. 
    44 - 'adblockplus' creates free running timer threads (with very long firering intervals), each thread is represented as an instance of a TimeoutThread class which holds `JsValuePtr function;` and `JsValueList functionArguments;` which hold `JsEnginePtr jsEngine;` that holds isolate. It's also results in some race conditions in tests. 
    45  
    4642=== Test notes === 
    4743''Eric wrote:''