Skip to content

Commit e791cc5

Browse files
committed
Change EventLoop::m_task_set to not use boost
EventLoop::m_task_set was unnecessary defined as boost::optional<kj::TaskSet> because it is always initialized. Thus, a bare kj::TaskSet suffices.
1 parent ba7d651 commit e791cc5

File tree

3 files changed

+11
-7
lines changed

3 files changed

+11
-7
lines changed

include/mp/proxy-io.h

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -199,7 +199,7 @@ class EventLoop
199199
LoggingErrorHandler m_error_handler{*this};
200200

201201
//! Capnp list of pending promises.
202-
boost::optional<kj::TaskSet> m_task_set;
202+
kj::TaskSet m_task_set;
203203

204204
//! List of connections.
205205
std::list<Connection> m_incoming_connections;
@@ -310,7 +310,7 @@ class Connection
310310
// to the EventLoop TaskSet to avoid "Promise callback destroyed itself"
311311
// error in cases where f deletes this Connection object.
312312
m_on_disconnect.add(m_network.onDisconnect().then(
313-
kj::mvCapture(f, [this](F&& f) { m_loop.m_task_set->add(kj::evalLater(kj::mv(f))); })));
313+
kj::mvCapture(f, [this](F&& f) { m_loop.m_task_set.add(kj::evalLater(kj::mv(f))); })));
314314
}
315315

316316
EventLoop& m_loop;
@@ -525,7 +525,7 @@ template <typename InitInterface, typename InitImpl>
525525
void _Listen(EventLoop& loop, kj::Own<kj::ConnectionReceiver>&& listener, InitImpl& init)
526526
{
527527
auto* ptr = listener.get();
528-
loop.m_task_set->add(ptr->accept().then(kj::mvCapture(kj::mv(listener),
528+
loop.m_task_set.add(ptr->accept().then(kj::mvCapture(kj::mv(listener),
529529
[&loop, &init](kj::Own<kj::ConnectionReceiver>&& listener, kj::Own<kj::AsyncIoStream>&& stream) {
530530
_Serve<InitInterface>(loop, kj::mv(stream), init);
531531
_Listen<InitInterface>(loop, kj::mv(listener), init);

include/mp/proxy-types.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1358,7 +1358,7 @@ void clientInvoke(ProxyClient& proxy_client, const GetRequest& get_request, Fiel
13581358
<< "{" << invoke_context.thread_context.thread_name << "} IPC client send "
13591359
<< TypeName<typename Request::Params>() << " " << LogEscape(request.toString());
13601360

1361-
proxy_client.m_connection->m_loop.m_task_set->add(request.send().then(
1361+
proxy_client.m_connection->m_loop.m_task_set.add(request.send().then(
13621362
[&](::capnp::Response<typename Request::Results>&& response) {
13631363
proxy_client.m_connection->m_loop.logPlain()
13641364
<< "{" << invoke_context.thread_context.thread_name << "} IPC client recv "

src/mp/proxy.cpp

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -123,13 +123,16 @@ void Connection::addAsyncCleanup(std::function<void()> fn)
123123
}
124124

125125
EventLoop::EventLoop(const char* exe_name, LogFn log_fn, void* context)
126-
: m_exe_name(exe_name), m_io_context(kj::setupAsyncIo()), m_log_fn(std::move(log_fn)), m_context(context)
126+
: m_exe_name(exe_name),
127+
m_io_context(kj::setupAsyncIo()),
128+
m_log_fn(std::move(log_fn)),
129+
m_context(context),
130+
m_task_set(m_error_handler)
127131
{
128132
int fds[2];
129133
KJ_SYSCALL(socketpair(AF_UNIX, SOCK_STREAM, 0, fds));
130134
m_wait_fd = fds[0];
131135
m_post_fd = fds[1];
132-
m_task_set.emplace(m_error_handler);
133136
}
134137

135138
EventLoop::~EventLoop()
@@ -170,7 +173,8 @@ void EventLoop::loop()
170173
m_cv.notify_all();
171174
if (m_num_clients == 0 && m_async_fns.empty()) {
172175
log() << "EventLoop::loop done, cancelling event listeners.";
173-
m_task_set.reset();
176+
using TaskSet = kj::TaskSet;
177+
m_task_set.~TaskSet();
174178
log() << "EventLoop::loop bye.";
175179
break;
176180
}

0 commit comments

Comments
 (0)