X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=nageru_cef_app.cpp;h=2e64ceee9aa35b11b1016fa4674b56fdaa1f3859;hb=ffd68fbfb90242069af957f2a28908f0559f8348;hp=bd8b9d6dd49d4a8b434730a6a86b230995df1a56;hpb=b68d8a25951faf5b967b7a35fa0a363b4b68fbc0;p=nageru diff --git a/nageru_cef_app.cpp b/nageru_cef_app.cpp index bd8b9d6..2e64cee 100644 --- a/nageru_cef_app.cpp +++ b/nageru_cef_app.cpp @@ -18,13 +18,6 @@ void NageruCefApp::OnBeforeCommandLineProcessing( command_line->AppendSwitch("enable-begin-frame-scheduling"); } -void NageruCefApp::OnBrowserDestroyed(CefRefPtr browser) -{ - lock_guard lock(cef_mutex); - pending_browsers.erase(browser.get()); - browser_closed_cond.notify_all(); -} - void NageruCefApp::initialize_cef() { unique_lock lock(cef_mutex); @@ -37,11 +30,7 @@ void NageruCefApp::initialize_cef() void NageruCefApp::close_browser(CefRefPtr browser) { unique_lock lock(cef_mutex); - CefBrowser *raw_ptr = browser.get(); - pending_browsers.insert(raw_ptr); browser->GetHost()->CloseBrowser(/*force_close=*/true); - browser = nullptr; - browser_closed_cond.wait(lock, [this, raw_ptr]{ return pending_browsers.count(raw_ptr) != 0; }); } void NageruCefApp::unref_cef() @@ -49,6 +38,7 @@ void NageruCefApp::unref_cef() unique_lock lock(cef_mutex); if (--cef_thread_refcount == 0) { CefPostTask(TID_UI, new CEFTaskAdapter(&CefQuitMessageLoop)); + lock.unlock(); cef_thread.join(); } }