You need to sign in or sign up before continuing.
Commit bfe75335 authored by Max Kellermann's avatar Max Kellermann

output/httpd: move Bind()/Unbind() to the IOThread

Fixes more thread-safety bugs.
parent 880bf17d
...@@ -71,8 +71,11 @@ HttpdOutput::Bind(Error &error) ...@@ -71,8 +71,11 @@ HttpdOutput::Bind(Error &error)
{ {
open = false; open = false;
const ScopeLock protect(mutex); bool result = false;
return ServerSocket::Open(error); BlockingCall(DeferredMonitor::GetEventLoop(), [this, &error, &result](){
result = ServerSocket::Open(error);
});
return result;
} }
inline void inline void
...@@ -80,8 +83,9 @@ HttpdOutput::Unbind() ...@@ -80,8 +83,9 @@ HttpdOutput::Unbind()
{ {
assert(!open); assert(!open);
const ScopeLock protect(mutex); BlockingCall(DeferredMonitor::GetEventLoop(), [this](){
ServerSocket::Close(); ServerSocket::Close();
});
} }
inline bool inline bool
......
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