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); }