From 78fe3db271dffd56e612118ddf17014b769be08e Mon Sep 17 00:00:00 2001 From: Ingo Weinhold Date: Wed, 15 Aug 2007 00:10:37 +0000 Subject: [PATCH] Added another TODO. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21957 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/kits/interface/Window.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/kits/interface/Window.cpp b/src/kits/interface/Window.cpp index 4476a15628..37df9745f7 100644 --- a/src/kits/interface/Window.cpp +++ b/src/kits/interface/Window.cpp @@ -2212,7 +2212,7 @@ void BWindow::Show() { if (!fRunCalled) { - // this is the fist time Show() is called, which implicetly runs the looper + // this is the fist time Show() is called, which implicitly runs the looper if (fLink->SenderPort() < B_OK) { // We don't have valid app_server connection; there is no point // in starting our looper @@ -2445,6 +2445,11 @@ BWindow::_InitData(BRect frame, const char* title, window_look look, // we'll lock the be_app to be sure we're the only one writing at BApplication's server port bool locked = false; if (!be_app->IsLocked()) { +// TODO: This doesn't look good. If a window is created in the message handling +// code of another window, then the lock of that other window is already being +// held. So, if the application tries to lock that window from its message +// handling code, we get a beautiful deadlock. Start Icon-O-Matic, quit it, and +// start it a second time to see that in action. be_app->Lock(); locked = true; }