mirror of
https://github.com/electron/electron.git
synced 2026-04-10 03:01:51 -04:00
Fix a possible dead lock when quiting.
It could happen that we are quitting when the embed thread is still waiting for the main thread, so we make sure embed thread is always signaled when quitting.
This commit is contained in:
@@ -39,10 +39,16 @@ NodeBindings::NodeBindings(bool is_browser)
|
||||
}
|
||||
|
||||
NodeBindings::~NodeBindings() {
|
||||
// Clear uv.
|
||||
// Quit the embed thread.
|
||||
embed_closed_ = true;
|
||||
uv_sem_post(&embed_sem_);
|
||||
WakeupEmbedThread();
|
||||
|
||||
// Wait for everything to be done.
|
||||
uv_thread_join(&embed_thread_);
|
||||
message_loop_->RunUntilIdle();
|
||||
|
||||
// Clear uv.
|
||||
uv_sem_destroy(&embed_sem_);
|
||||
uv_timer_stop(&idle_timer_);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user