summaryrefslogtreecommitdiffstats
path: root/src/server
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2012-12-21 05:35:26 +0000
committerDavid Robillard <d@drobilla.net>2012-12-21 05:35:26 +0000
commitf67344b4c6c7df01dd1e9f3023fa20416103cb6a (patch)
tree4cf79ffe63064255f0951ac35ca2c2b7f4dd7cba /src/server
parent89703f69e36514584ec5c399f4bdc8fb2cbc4036 (diff)
downloadingen-f67344b4c6c7df01dd1e9f3023fa20416103cb6a.tar.gz
ingen-f67344b4c6c7df01dd1e9f3023fa20416103cb6a.tar.bz2
ingen-f67344b4c6c7df01dd1e9f3023fa20416103cb6a.zip
Fix UI operation via socket.
Fix crashes and deadlocks on shutdown. git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@4872 a436a847-0d15-0410-975c-d299462d15a1
Diffstat (limited to 'src/server')
-rw-r--r--src/server/Broadcaster.cpp6
-rw-r--r--src/server/Broadcaster.hpp1
2 files changed, 7 insertions, 0 deletions
diff --git a/src/server/Broadcaster.cpp b/src/server/Broadcaster.cpp
index ab6b16fb..6c111a1c 100644
--- a/src/server/Broadcaster.cpp
+++ b/src/server/Broadcaster.cpp
@@ -26,6 +26,12 @@
namespace Ingen {
namespace Server {
+Broadcaster::~Broadcaster()
+{
+ Glib::Mutex::Lock lock(_clients_mutex);
+ _clients.clear();
+}
+
/** Register a client to receive messages over the notification band.
*/
void
diff --git a/src/server/Broadcaster.hpp b/src/server/Broadcaster.hpp
index 621b6b61..34bfa728 100644
--- a/src/server/Broadcaster.hpp
+++ b/src/server/Broadcaster.hpp
@@ -43,6 +43,7 @@ class Broadcaster : public Interface
{
public:
Broadcaster() : _bundle_depth(0) {}
+ ~Broadcaster();
void register_client(const Raul::URI& uri, SharedPtr<Interface> client);
bool unregister_client(const Raul::URI& uri);