SafeThread: Avoid use-after-free risk in thread shutdown (#1355)

Use shared_ptr to keep data alive until the thread has terminated.
This commit is contained in:
Peter Johnson
2018-10-05 16:32:43 -07:00
committed by GitHub
parent 36000ddb36
commit 18c8cce6a7
8 changed files with 103 additions and 68 deletions

View File

@@ -39,7 +39,7 @@ class EventLoopRunner::Thread : public SafeThread {
std::weak_ptr<UvExecFunc> m_doExec;
};
EventLoopRunner::EventLoopRunner() { m_owner.Start(new Thread); }
EventLoopRunner::EventLoopRunner() { m_owner.Start(); }
EventLoopRunner::~EventLoopRunner() {
ExecAsync([](uv::Loop& loop) {