diff --git a/sunshine/platform/linux.cpp b/sunshine/platform/linux.cpp index 1c82a892..137ae0e4 100644 --- a/sunshine/platform/linux.cpp +++ b/sunshine/platform/linux.cpp @@ -160,7 +160,7 @@ struct x11_attr_t : public display_t { if(width != xattr.width || height != xattr.height) { return capture_e::reinit; } - + XImage *img { XGetImage( xdisplay.get(), xwindow, diff --git a/sunshine/round_robin.h b/sunshine/round_robin.h old mode 100755 new mode 100644 diff --git a/sunshine/stream.cpp b/sunshine/stream.cpp index e3f504e0..08899f80 100644 --- a/sunshine/stream.cpp +++ b/sunshine/stream.cpp @@ -494,8 +494,11 @@ void controlBroadcastThread(safe::signal_t *shutdown_event, control_server_t *se server->send(std::string_view {(char*)payload.data(), payload.size()}); - shutdown_event->raise(true); - continue; + auto lg = server->_map_addr_session.lock(); + for(auto pos = std::begin(*server->_map_addr_session); pos != std::end(*server->_map_addr_session); ++pos) { + auto session = pos->second.second; + session->shutdown_event.raise(true); + } } server->iterate(500ms);