- SocketConnectionRef conn =
- seastar::make_shared<SocketConnection>(*this, dispatchers);
- conn->start_accept(std::move(socket), peer_addr);
- return seastar::now();
+ SocketFRef socket = seastar::make_foreign(std::move(_socket));
+ if (listener->is_fixed_shard_dispatching()) {
+ return accept(std::move(socket), peer_addr);
+ } else {
+ return seastar::smp::submit_to(sid,
+ [this, peer_addr, socket = std::move(socket)]() mutable {
+ return accept(std::move(socket), peer_addr);
+ });
+ }