Run destruction callbacks before message loop gets destroyed
This commit is contained in:
parent
e5496d9ac0
commit
9d51da505e
2 changed files with 11 additions and 2 deletions
|
@ -39,8 +39,6 @@ AtomBrowserMainParts::AtomBrowserMainParts()
|
||||||
}
|
}
|
||||||
|
|
||||||
AtomBrowserMainParts::~AtomBrowserMainParts() {
|
AtomBrowserMainParts::~AtomBrowserMainParts() {
|
||||||
for (const auto& callback : destruction_callbacks_)
|
|
||||||
callback.Run();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// static
|
// static
|
||||||
|
@ -118,4 +116,14 @@ void AtomBrowserMainParts::PreMainMessageLoopRun() {
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void AtomBrowserMainParts::PostMainMessageLoopRun() {
|
||||||
|
brightray::BrowserMainParts::PostMainMessageLoopRun();
|
||||||
|
|
||||||
|
// Make sure destruction callbacks are called before message loop is
|
||||||
|
// destroyed, otherwise some objects that need to be deleted on IO thread
|
||||||
|
// won't be freed.
|
||||||
|
for (const auto& callback : destruction_callbacks_)
|
||||||
|
callback.Run();
|
||||||
|
}
|
||||||
|
|
||||||
} // namespace atom
|
} // namespace atom
|
||||||
|
|
|
@ -41,6 +41,7 @@ class AtomBrowserMainParts : public brightray::BrowserMainParts {
|
||||||
// content::BrowserMainParts:
|
// content::BrowserMainParts:
|
||||||
void PostEarlyInitialization() override;
|
void PostEarlyInitialization() override;
|
||||||
void PreMainMessageLoopRun() override;
|
void PreMainMessageLoopRun() override;
|
||||||
|
void PostMainMessageLoopRun() override;
|
||||||
#if defined(OS_MACOSX)
|
#if defined(OS_MACOSX)
|
||||||
void PreMainMessageLoopStart() override;
|
void PreMainMessageLoopStart() override;
|
||||||
void PostDestroyThreads() override;
|
void PostDestroyThreads() override;
|
||||||
|
|
Loading…
Add table
Reference in a new issue