From 26d8064ea8260af252afcea142aad9cf8317d207 Mon Sep 17 00:00:00 2001 From: Clemens Zeidler Date: Tue, 17 Aug 2010 22:56:19 +0000 Subject: [PATCH] Lock WindowForClientLooperPort method and add comment that the window lock has to be held if accessing the a WindowList. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38215 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/servers/app/Desktop.cpp | 2 ++ src/servers/app/Desktop.h | 1 + 2 files changed, 3 insertions(+) diff --git a/src/servers/app/Desktop.cpp b/src/servers/app/Desktop.cpp index 33446cca4b..0f2551c27a 100644 --- a/src/servers/app/Desktop.cpp +++ b/src/servers/app/Desktop.cpp @@ -2487,6 +2487,8 @@ Desktop::AllWindows() Window* Desktop::WindowForClientLooperPort(port_id port) { + AutoReadLocker locker(fWindowLock); + for (Window* window = fAllWindows.FirstWindow(); window != NULL; window = window->NextWindow(kAllWindowList)) { if (window->ServerWindow()->ClientLooperPort() == port) diff --git a/src/servers/app/Desktop.h b/src/servers/app/Desktop.h index b18ae40a8b..fab5c6fc31 100644 --- a/src/servers/app/Desktop.h +++ b/src/servers/app/Desktop.h @@ -257,6 +257,7 @@ public: void WriteWindowOrder(int32 workspace, BPrivate::LinkSender& sender); + //! The window lock has to be held when accessing a window list! WindowList& CurrentWindows(); WindowList& AllWindows();