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:
parent
f87938dc2e
commit
4c3e1ace67
@ -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;
|
||||
}
|
||||
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user