diff options
| author | a-sumin <[email protected]> | 2023-06-07 15:51:22 +0300 |
|---|---|---|
| committer | a-sumin <[email protected]> | 2023-06-07 15:51:22 +0300 |
| commit | 668b4b0738d0884b52e9212ea4ea1b78e5056937 (patch) | |
| tree | def96e2a92e5e116fa2975d9c8fdcb519649d4e9 /library/cpp/actors/testlib/test_runtime.cpp | |
| parent | cb91ffc1454a6cc69c96fbba4f532454dc4cf747 (diff) | |
Fix memory leak in TActorSystem
Diffstat (limited to 'library/cpp/actors/testlib/test_runtime.cpp')
| -rw-r--r-- | library/cpp/actors/testlib/test_runtime.cpp | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/library/cpp/actors/testlib/test_runtime.cpp b/library/cpp/actors/testlib/test_runtime.cpp index 6fedca1cd22..e093b2e6bf4 100644 --- a/library/cpp/actors/testlib/test_runtime.cpp +++ b/library/cpp/actors/testlib/test_runtime.cpp @@ -751,7 +751,7 @@ namespace NActors { VERBOSE = verbose; } - void TTestActorRuntimeBase::AddLocalService(const TActorId& actorId, const TActorSetupCmd& cmd, ui32 nodeIndex) { + void TTestActorRuntimeBase::AddLocalService(const TActorId& actorId, TActorSetupCmd cmd, ui32 nodeIndex) { Y_VERIFY(!IsInitialized); Y_VERIFY(nodeIndex < NodeCount); auto node = Nodes[nodeIndex + FirstNodeId]; @@ -760,8 +760,8 @@ namespace NActors { Nodes[nodeIndex + FirstNodeId] = node; } - node->LocalServicesActors[actorId] = cmd.Actor; - node->LocalServices.push_back(std::make_pair(actorId, cmd)); + node->LocalServicesActors[actorId] = cmd.Actor.get(); + node->LocalServices.push_back(std::make_pair(actorId, TTestActorSetupCmd(std::move(cmd)))); } void TTestActorRuntimeBase::InitNodes() { @@ -1684,7 +1684,9 @@ namespace NActors { const auto& interconnectCounters = GetCountersForComponent(node->DynamicCounters, "interconnect"); - setup->LocalServices = node->LocalServices; + for (const auto& cmd : node->LocalServices) { + setup->LocalServices.emplace_back(cmd.first, TActorSetupCmd(cmd.second.Actor, cmd.second.MailboxType, cmd.second.PoolId)); + } setup->Interconnect.ProxyActors.resize(FirstNodeId + NodeCount); const TActorId nameserviceId = GetNameserviceActorId(); @@ -1734,8 +1736,8 @@ namespace NActors { NActors::TLoggerActor *loggerActor = new NActors::TLoggerActor(node->LogSettings, logBackend, GetCountersForComponent(node->DynamicCounters, "utils")); NActors::TActorSetupCmd loggerActorCmd(loggerActor, NActors::TMailboxType::Simple, node->GetLoggerPoolId()); - std::pair<NActors::TActorId, NActors::TActorSetupCmd> loggerActorPair(node->LogSettings->LoggerActorId, loggerActorCmd); - setup->LocalServices.push_back(loggerActorPair); + std::pair<NActors::TActorId, NActors::TActorSetupCmd> loggerActorPair(node->LogSettings->LoggerActorId, std::move(loggerActorCmd)); + setup->LocalServices.push_back(std::move(loggerActorPair)); } return THolder<TActorSystem>(new TActorSystem(setup, node->GetAppData(), node->LogSettings)); |
