NEW 219591
[WTF] RunLoop::dispatchAfter() leaks pending timers after thread termination
https://bugs.webkit.org/show_bug.cgi?id=219591
Summary [WTF] RunLoop::dispatchAfter() leaks pending timers after thread termination
Zan Dobersek
Reported 2020-12-07 01:18:23 PST
Spun from bug #219232. Any task queued via RunLoop::dispatchAfter() is leaked if the RunLoop thread terminates before the underlying DispatchTimer is fired because the DispatchTimer is only freed when it's fired, which doesn't happen after the RunLoop thread terminates. Right now, the RunLoop reference taken via TimerBase (from which DispatchTimer derives) also blocks the RunLoop object to be destroyed once the thread is terminated. Bug #219232 doesn't help here because DispatchTimer instances are not stored in any containers that could be cleared at the point of termination.
Attachments
Unit test (779 bytes, patch)
2020-12-07 01:19 PST, Zan Dobersek
no flags
Zan Dobersek
Comment 1 2020-12-07 01:19:24 PST
Created attachment 415538 [details] Unit test
Radar WebKit Bug Importer
Comment 2 2020-12-14 01:19:18 PST
Note You need to log in before you can comment on or make changes to this bug.