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();
|
AssertLocked();
|
||||||
|
|
||||||
if (window_quit_loop(false, force))
|
// We need to unlock here because BWindow::QuitRequested() must be
|
||||||
return true;
|
// 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