Commit 37e25f93 authored by Max Kellermann's avatar Max Kellermann

lib/dbus/Glue: move Connect()/Disconnect() calls to I/O thread

parent d58d65eb
...@@ -19,10 +19,23 @@ ...@@ -19,10 +19,23 @@
#include "config.h" #include "config.h"
#include "Glue.hxx" #include "Glue.hxx"
#include "event/Call.hxx"
namespace ODBus { namespace ODBus {
void void
Glue::ConnectIndirect()
{
BlockingCall(GetEventLoop(), [this](){ Connect(); });
}
void
Glue::DisconnectIndirect()
{
BlockingCall(GetEventLoop(), [this](){ Disconnect(); });
}
void
Glue::Connect() Glue::Connect()
{ {
watch.SetConnection(Connection::GetSystemPrivate()); watch.SetConnection(Connection::GetSystemPrivate());
......
...@@ -35,11 +35,11 @@ class Glue final : ODBus::WatchManagerObserver { ...@@ -35,11 +35,11 @@ class Glue final : ODBus::WatchManagerObserver {
public: public:
explicit Glue(EventLoop &event_loop) explicit Glue(EventLoop &event_loop)
:watch(event_loop, *this) { :watch(event_loop, *this) {
Connect(); ConnectIndirect();
} }
~Glue() noexcept { ~Glue() noexcept {
Disconnect(); DisconnectIndirect();
} }
EventLoop &GetEventLoop() noexcept { EventLoop &GetEventLoop() noexcept {
...@@ -51,6 +51,9 @@ public: ...@@ -51,6 +51,9 @@ public:
} }
private: private:
void ConnectIndirect();
void DisconnectIndirect();
void Connect(); void Connect();
void Disconnect(); void Disconnect();
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment