From 5934b30b95a239eee4a088a9b9cb425eef13f22d Mon Sep 17 00:00:00 2001 From: Dario Casalinuovo Date: Mon, 27 Jul 2015 20:20:03 +0200 Subject: [PATCH] media_server: Fix deadlock when killing from ProcessController --- src/servers/media/media_server.cpp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/servers/media/media_server.cpp b/src/servers/media/media_server.cpp index 241c1148e5..6fd937f276 100644 --- a/src/servers/media/media_server.cpp +++ b/src/servers/media/media_server.cpp @@ -918,6 +918,13 @@ ServerApp::_ControlThread(void* _server) int32 code; while ((size = read_port_etc(server->_ControlPort(), &code, data, sizeof(data), 0, 0)) > 0) { + + // NOTE: This prevents locks in Deskbar and + // possibly in other situations. + if (size == B_WOULD_BLOCK) { + snooze(100); + continue; + } server->_HandleMessage(code, data, size); }