summaryrefslogtreecommitdiffstats
path: root/library/cpp/actors/testlib/test_runtime.cpp
diff options
context:
space:
mode:
authora-sumin <[email protected]>2023-06-07 15:51:22 +0300
committera-sumin <[email protected]>2023-06-07 15:51:22 +0300
commit668b4b0738d0884b52e9212ea4ea1b78e5056937 (patch)
treedef96e2a92e5e116fa2975d9c8fdcb519649d4e9 /library/cpp/actors/testlib/test_runtime.cpp
parentcb91ffc1454a6cc69c96fbba4f532454dc4cf747 (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.cpp14
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));