diff --git a/test/scenario/network/network_emulation_manager.cc b/test/scenario/network/network_emulation_manager.cc index 483dba3197..ae67f6fb5e 100644 --- a/test/scenario/network/network_emulation_manager.cc +++ b/test/scenario/network/network_emulation_manager.cc @@ -58,10 +58,13 @@ EmulatedNetworkNode* NetworkEmulationManagerImpl::CreateEmulatedNode( auto node = absl::make_unique( clock_, &task_queue_, std::move(network_behavior)); EmulatedNetworkNode* out = node.get(); - task_queue_.PostTask(CreateResourceOwningTask( - std::move(node), [this](std::unique_ptr node) { - network_nodes_.push_back(std::move(node)); - })); + + struct Closure { + void operator()() { manager->network_nodes_.push_back(std::move(node)); } + NetworkEmulationManagerImpl* manager; + std::unique_ptr node; + }; + task_queue_.PostTask(Closure{this, std::move(node)}); return out; } diff --git a/test/scenario/network/network_emulation_manager.h b/test/scenario/network/network_emulation_manager.h index c1645141dc..b3fd2a5c3e 100644 --- a/test/scenario/network/network_emulation_manager.h +++ b/test/scenario/network/network_emulation_manager.h @@ -66,6 +66,8 @@ class NetworkEmulationManagerImpl : public NetworkEmulationManager { const std::vector& endpoints) override; private: + FakeNetworkSocketServer* CreateSocketServer( + const std::vector& endpoints); absl::optional GetNextIPv4Address(); void ProcessNetworkPackets(); Timestamp Now() const;