Fixed a bug in quit_all_windows(): we need to Unlock() the application

because BWindow::QuitRequested() must be allowed to lock it.
This fixes a deadlock when trying to quit Tracker.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13479 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Axel Dörfler 2005-07-06 04:48:22 +00:00
parent f87938dc2e
commit 4c3e1ace67

View File

@ -1173,10 +1173,17 @@ BApplication::quit_all_windows(bool force)
{
AssertLocked();
if (window_quit_loop(false, force))
return true;
// We need to unlock here because BWindow::QuitRequested() must be
// allowed to lock the application - which would cause a deadlock
Unlock();
return window_quit_loop(true, force);
bool quit = window_quit_loop(false, force);
if (!quit)
quit = window_quit_loop(true, force);
Lock();
return quit;
}