Opened on 04/25/2017 at 10:33:52 AM
Closed on 03/13/2018 at 01:19:25 PM
#5179 closed change (fixed)
Implement asynchronous executor with a controllable lifetime.
Reported by: | sergz | Assignee: | sergz |
---|---|---|---|
Priority: | P2 | Milestone: | |
Module: | Libadblockplus | Keywords: | |
Cc: | fhd, asmirnov | Blocked By: | |
Blocking: | #3595, #5180, #5183 | Platform: | Unknown / Cross platform |
Ready: | no | Confidential: | no |
Tester: | Unknown | Verified working: | no |
Review URL(s): |
Description
Background
We run some operations in an asynchronous manner in background threads and the current approach with detached threads causes very bad effects. In particular it is a source of numerous race conditions. Therefore we need an option to wait for all currently running operations.
What to change
Such executor is implemented in https://codereview.adblockplus.org/29367507/, however the change set contains too much changes, so one can fine the SSCCE at https://gist.github.com/abby-sergz/12a2c1d25fc93c17838c878a11d7fe89.
Attachments (0)
Change History (9)
comment:1 Changed on 04/25/2017 at 10:34:34 AM by sergz
- Blocking 5180 added
comment:2 Changed on 04/25/2017 at 10:35:55 AM by sergz
- Blocking 5182 added
comment:3 Changed on 04/25/2017 at 10:37:32 AM by sergz
- Blocking 5183 added
comment:4 Changed on 05/11/2017 at 10:09:55 AM by sergz
- Blocking 5182 removed
comment:5 Changed on 07/31/2017 at 02:46:52 PM by sergz
- Blocking 3595 added
comment:6 Changed on 02/13/2018 at 10:05:01 AM by sergz
- Cc asmirnov added
- Owner set to sergz
comment:7 Changed on 02/23/2018 at 11:17:16 AM by sergz
- Review URL(s) modified (diff)
- Status changed from new to reviewing
comment:8 Changed on 03/13/2018 at 01:19:04 PM by abpbot
A commit referencing this issue has landed:
Issue 5179 - Implement asynchronous executor with a controllable lifetime
comment:9 Changed on 03/13/2018 at 01:19:25 PM by sergz
- Resolution set to fixed
- Status changed from reviewing to closed
A recent case (#6365) has shown that now it's going to be important, therefore IMO it's time to finish all threading issues.
@asmirnov: when the patch is landed it can break tests of libadblockplus-android because the engine will wait for all currently running operations, and if there is at least one infinite loop then the test will never finish. Could please check it and create corresponding libadblockplus-android issues.