aboutsummaryrefslogtreecommitdiffstats
path: root/library/cpp
diff options
context:
space:
mode:
authorivanmorozov <ivanmorozov@yandex-team.com>2023-07-08 10:42:41 +0300
committerivanmorozov <ivanmorozov@yandex-team.com>2023-07-08 10:42:41 +0300
commit81455e7b2b77e04a368defb143ff6662655c493e (patch)
tree93740ba5f14027d440543ed11263fb1ddc7b01b4 /library/cpp
parent8b786ab7d76b124c88dbc7ed858770e56ae14206 (diff)
downloadydb-81455e7b2b77e04a368defb143ff6662655c493e.tar.gz
KIKIMR-18568: remove dependency library/cpp/actors to ydb/core/protos
Diffstat (limited to 'library/cpp')
-rw-r--r--library/cpp/actors/core/CMakeLists.darwin-x86_64.txt12
-rw-r--r--library/cpp/actors/core/CMakeLists.linux-aarch64.txt12
-rw-r--r--library/cpp/actors/core/CMakeLists.linux-x86_64.txt12
-rw-r--r--library/cpp/actors/core/CMakeLists.windows-x86_64.txt12
-rw-r--r--library/cpp/actors/core/actor.h86
-rw-r--r--library/cpp/actors/core/actor_bootstrapped.h5
-rw-r--r--library/cpp/actors/core/actor_coroutine.h3
-rw-r--r--library/cpp/actors/core/actor_ut.cpp6
-rw-r--r--library/cpp/actors/core/executor_pool_basic.cpp4
-rw-r--r--library/cpp/actors/core/executor_pool_basic.h3
-rw-r--r--library/cpp/actors/core/executor_pool_io.cpp2
-rw-r--r--library/cpp/actors/core/executor_pool_io.h3
-rw-r--r--library/cpp/actors/core/executor_pool_united.cpp8
-rw-r--r--library/cpp/actors/core/executor_pool_united_workers.h3
-rw-r--r--library/cpp/actors/core/indexes.cpp0
-rw-r--r--library/cpp/actors/core/indexes.h59
-rw-r--r--library/cpp/actors/core/invoke.h27
-rw-r--r--library/cpp/actors/core/log.h4
-rw-r--r--library/cpp/actors/core/process_stats.cpp2
-rw-r--r--library/cpp/actors/core/scheduler_actor.cpp2
-rw-r--r--library/cpp/actors/core/ya.make2
-rw-r--r--library/cpp/actors/dnsresolver/dnsresolver.cpp2
-rw-r--r--library/cpp/actors/dnsresolver/dnsresolver_caching.cpp2
-rw-r--r--library/cpp/actors/dnsresolver/dnsresolver_ondemand.cpp2
-rw-r--r--library/cpp/actors/helpers/flow_controlled_queue.cpp7
-rw-r--r--library/cpp/actors/helpers/flow_controlled_queue.h3
-rw-r--r--library/cpp/actors/helpers/future_callback.h2
-rw-r--r--library/cpp/actors/helpers/pool_stats_collector.h2
-rw-r--r--library/cpp/actors/helpers/selfping_actor.cpp2
-rw-r--r--library/cpp/actors/interconnect/interconnect_handshake.cpp4
-rw-r--r--library/cpp/actors/interconnect/interconnect_mon.cpp4
-rw-r--r--library/cpp/actors/interconnect/interconnect_nameserver_dynamic.cpp2
-rw-r--r--library/cpp/actors/interconnect/interconnect_nameserver_table.cpp2
-rw-r--r--library/cpp/actors/interconnect/interconnect_proxy_wrapper.cpp2
-rw-r--r--library/cpp/actors/interconnect/interconnect_resolve.cpp2
-rw-r--r--library/cpp/actors/interconnect/interconnect_tcp_proxy.h2
-rw-r--r--library/cpp/actors/interconnect/interconnect_tcp_server.h2
-rw-r--r--library/cpp/actors/interconnect/interconnect_tcp_session.h6
-rw-r--r--library/cpp/actors/interconnect/load.cpp6
-rw-r--r--library/cpp/actors/interconnect/poller_actor.cpp2
-rw-r--r--library/cpp/actors/testlib/test_runtime.cpp6
-rw-r--r--library/cpp/actors/util/local_process_key.h16
42 files changed, 228 insertions, 117 deletions
diff --git a/library/cpp/actors/core/CMakeLists.darwin-x86_64.txt b/library/cpp/actors/core/CMakeLists.darwin-x86_64.txt
index 747c10d87d2..ad0db0f5719 100644
--- a/library/cpp/actors/core/CMakeLists.darwin-x86_64.txt
+++ b/library/cpp/actors/core/CMakeLists.darwin-x86_64.txt
@@ -25,6 +25,12 @@ get_built_tool_path(
tools/enum_parser/enum_parser
enum_parser
)
+get_built_tool_path(
+ TOOL_enum_parser_bin
+ TOOL_enum_parser_dependency
+ tools/enum_parser/enum_parser
+ enum_parser
+)
add_library(cpp-actors-core)
target_link_libraries(cpp-actors-core PUBLIC
@@ -67,6 +73,7 @@ target_sources(cpp-actors-core PRIVATE
${CMAKE_SOURCE_DIR}/library/cpp/actors/core/executor_thread.cpp
${CMAKE_SOURCE_DIR}/library/cpp/actors/core/harmonizer.cpp
${CMAKE_SOURCE_DIR}/library/cpp/actors/core/interconnect.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/core/indexes.cpp
${CMAKE_SOURCE_DIR}/library/cpp/actors/core/io_dispatcher.cpp
${CMAKE_SOURCE_DIR}/library/cpp/actors/core/log.cpp
${CMAKE_SOURCE_DIR}/library/cpp/actors/core/log_settings.cpp
@@ -92,6 +99,11 @@ generate_enum_serilization(cpp-actors-core
library/cpp/actors/core/actor.h
)
generate_enum_serilization(cpp-actors-core
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/core/indexes.h
+ INCLUDE_HEADERS
+ library/cpp/actors/core/indexes.h
+)
+generate_enum_serilization(cpp-actors-core
${CMAKE_SOURCE_DIR}/library/cpp/actors/core/log_iface.h
INCLUDE_HEADERS
library/cpp/actors/core/log_iface.h
diff --git a/library/cpp/actors/core/CMakeLists.linux-aarch64.txt b/library/cpp/actors/core/CMakeLists.linux-aarch64.txt
index 4aa2f487056..25276b5598c 100644
--- a/library/cpp/actors/core/CMakeLists.linux-aarch64.txt
+++ b/library/cpp/actors/core/CMakeLists.linux-aarch64.txt
@@ -25,6 +25,12 @@ get_built_tool_path(
tools/enum_parser/enum_parser
enum_parser
)
+get_built_tool_path(
+ TOOL_enum_parser_bin
+ TOOL_enum_parser_dependency
+ tools/enum_parser/enum_parser
+ enum_parser
+)
add_library(cpp-actors-core)
target_link_libraries(cpp-actors-core PUBLIC
@@ -68,6 +74,7 @@ target_sources(cpp-actors-core PRIVATE
${CMAKE_SOURCE_DIR}/library/cpp/actors/core/executor_thread.cpp
${CMAKE_SOURCE_DIR}/library/cpp/actors/core/harmonizer.cpp
${CMAKE_SOURCE_DIR}/library/cpp/actors/core/interconnect.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/core/indexes.cpp
${CMAKE_SOURCE_DIR}/library/cpp/actors/core/io_dispatcher.cpp
${CMAKE_SOURCE_DIR}/library/cpp/actors/core/log.cpp
${CMAKE_SOURCE_DIR}/library/cpp/actors/core/log_settings.cpp
@@ -93,6 +100,11 @@ generate_enum_serilization(cpp-actors-core
library/cpp/actors/core/actor.h
)
generate_enum_serilization(cpp-actors-core
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/core/indexes.h
+ INCLUDE_HEADERS
+ library/cpp/actors/core/indexes.h
+)
+generate_enum_serilization(cpp-actors-core
${CMAKE_SOURCE_DIR}/library/cpp/actors/core/log_iface.h
INCLUDE_HEADERS
library/cpp/actors/core/log_iface.h
diff --git a/library/cpp/actors/core/CMakeLists.linux-x86_64.txt b/library/cpp/actors/core/CMakeLists.linux-x86_64.txt
index 4aa2f487056..25276b5598c 100644
--- a/library/cpp/actors/core/CMakeLists.linux-x86_64.txt
+++ b/library/cpp/actors/core/CMakeLists.linux-x86_64.txt
@@ -25,6 +25,12 @@ get_built_tool_path(
tools/enum_parser/enum_parser
enum_parser
)
+get_built_tool_path(
+ TOOL_enum_parser_bin
+ TOOL_enum_parser_dependency
+ tools/enum_parser/enum_parser
+ enum_parser
+)
add_library(cpp-actors-core)
target_link_libraries(cpp-actors-core PUBLIC
@@ -68,6 +74,7 @@ target_sources(cpp-actors-core PRIVATE
${CMAKE_SOURCE_DIR}/library/cpp/actors/core/executor_thread.cpp
${CMAKE_SOURCE_DIR}/library/cpp/actors/core/harmonizer.cpp
${CMAKE_SOURCE_DIR}/library/cpp/actors/core/interconnect.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/core/indexes.cpp
${CMAKE_SOURCE_DIR}/library/cpp/actors/core/io_dispatcher.cpp
${CMAKE_SOURCE_DIR}/library/cpp/actors/core/log.cpp
${CMAKE_SOURCE_DIR}/library/cpp/actors/core/log_settings.cpp
@@ -93,6 +100,11 @@ generate_enum_serilization(cpp-actors-core
library/cpp/actors/core/actor.h
)
generate_enum_serilization(cpp-actors-core
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/core/indexes.h
+ INCLUDE_HEADERS
+ library/cpp/actors/core/indexes.h
+)
+generate_enum_serilization(cpp-actors-core
${CMAKE_SOURCE_DIR}/library/cpp/actors/core/log_iface.h
INCLUDE_HEADERS
library/cpp/actors/core/log_iface.h
diff --git a/library/cpp/actors/core/CMakeLists.windows-x86_64.txt b/library/cpp/actors/core/CMakeLists.windows-x86_64.txt
index 747c10d87d2..ad0db0f5719 100644
--- a/library/cpp/actors/core/CMakeLists.windows-x86_64.txt
+++ b/library/cpp/actors/core/CMakeLists.windows-x86_64.txt
@@ -25,6 +25,12 @@ get_built_tool_path(
tools/enum_parser/enum_parser
enum_parser
)
+get_built_tool_path(
+ TOOL_enum_parser_bin
+ TOOL_enum_parser_dependency
+ tools/enum_parser/enum_parser
+ enum_parser
+)
add_library(cpp-actors-core)
target_link_libraries(cpp-actors-core PUBLIC
@@ -67,6 +73,7 @@ target_sources(cpp-actors-core PRIVATE
${CMAKE_SOURCE_DIR}/library/cpp/actors/core/executor_thread.cpp
${CMAKE_SOURCE_DIR}/library/cpp/actors/core/harmonizer.cpp
${CMAKE_SOURCE_DIR}/library/cpp/actors/core/interconnect.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/core/indexes.cpp
${CMAKE_SOURCE_DIR}/library/cpp/actors/core/io_dispatcher.cpp
${CMAKE_SOURCE_DIR}/library/cpp/actors/core/log.cpp
${CMAKE_SOURCE_DIR}/library/cpp/actors/core/log_settings.cpp
@@ -92,6 +99,11 @@ generate_enum_serilization(cpp-actors-core
library/cpp/actors/core/actor.h
)
generate_enum_serilization(cpp-actors-core
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/core/indexes.h
+ INCLUDE_HEADERS
+ library/cpp/actors/core/indexes.h
+)
+generate_enum_serilization(cpp-actors-core
${CMAKE_SOURCE_DIR}/library/cpp/actors/core/log_iface.h
INCLUDE_HEADERS
library/cpp/actors/core/log_iface.h
diff --git a/library/cpp/actors/core/actor.h b/library/cpp/actors/core/actor.h
index 794369179f4..54ab5a5f3bb 100644
--- a/library/cpp/actors/core/actor.h
+++ b/library/cpp/actors/core/actor.h
@@ -4,6 +4,7 @@
#include "event.h"
#include "executor_thread.h"
#include "monotonic.h"
+#include "indexes.h"
#include <library/cpp/actors/util/local_process_key.h>
@@ -11,18 +12,6 @@
#include <util/generic/noncopyable.h>
namespace NActors {
-struct TActorActivityTag {};
-}
-
-template <>
-class TLocalProcessKeyStateIndexConstructor<NActors::TActorActivityTag> {
-public:
- static ui32 BuildCurrentIndex(const TStringBuf name, const ui32 /*currentNamesCount*/) {
- return NProfiling::MakeTag(name.data());
- }
-};
-
-namespace NActors {
class TActorSystem;
class TMailboxTable;
struct TMailboxHeader;
@@ -333,56 +322,43 @@ namespace NActors {
friend class TExecutorPoolBaseMailboxed;
friend class TExecutorThread;
+ IActor(const ui32 activityType)
+ : SelfActorId(TActorId())
+ , ElapsedTicks(0)
+ , ActivityType(activityType)
+ , HandledEvents(0) {
+ }
+
protected:
TActorCallbackBehaviour CImpl;
public:
using TEventFlags = IEventHandle::TEventFlags;
using TReceiveFunc = TActorCallbackBehaviour::TReceiveFunc;
/// @sa services.proto NKikimrServices::TActivity::EType
- enum EActorActivity {
- OTHER = 0,
- ACTOR_SYSTEM = 1,
- ACTORLIB_COMMON = 2,
- ACTORLIB_STATS = 3,
- LOG_ACTOR = 4,
- INTERCONNECT_PROXY_TCP = 12,
- INTERCONNECT_SESSION_TCP = 13,
- INTERCONNECT_COMMON = 171,
- SELF_PING_ACTOR = 207,
- TEST_ACTOR_RUNTIME = 283,
- INTERCONNECT_HANDSHAKE = 284,
- INTERCONNECT_POLLER = 285,
- INTERCONNECT_SESSION_KILLER = 286,
- ACTOR_SYSTEM_SCHEDULER_ACTOR = 312,
- ACTOR_FUTURE_CALLBACK = 337,
- INTERCONNECT_MONACTOR = 362,
- INTERCONNECT_LOAD_ACTOR = 376,
- INTERCONNECT_LOAD_RESPONDER = 377,
- NAMESERVICE = 450,
- DNS_RESOLVER = 481,
- INTERCONNECT_PROXY_WRAPPER = 546,
- ACTOR_COROUTINE = 577
- };
-
+ using EActorActivity = EInternalActorType;
using EActivityType = EActorActivity;
ui32 ActivityType;
protected:
ui64 HandledEvents;
- IActor(TActorCallbackBehaviour&& cImpl, ui32 activityType = OTHER)
+ template <typename EEnum = EActivityType, typename std::enable_if<std::is_enum<EEnum>::value, bool>::type v = true>
+ IActor(const EEnum activityEnumType = EActivityType::OTHER)
+ : IActor(TEnumProcessKey<TActorActivityTag, EEnum>::GetIndex(activityEnumType)) {
+ }
+
+ IActor(TActorCallbackBehaviour&& cImpl, const ui32 activityType)
: SelfActorId(TActorId())
, ElapsedTicks(0)
, CImpl(std::move(cImpl))
, ActivityType(activityType)
- , HandledEvents(0) {
+ , HandledEvents(0)
+ {
}
- IActor(ui32 activityType = OTHER)
- : SelfActorId(TActorId())
- , ElapsedTicks(0)
- , ActivityType(activityType)
- , HandledEvents(0) {
+ template <typename EEnum = EActivityType, typename std::enable_if<std::is_enum<EEnum>::value, bool>::type v = true>
+ IActor(TActorCallbackBehaviour&& cImpl, const EEnum activityEnumType = EActivityType::OTHER)
+ : IActor(std::move(cImpl), TEnumProcessKey<TActorActivityTag, EEnum>::GetIndex(activityEnumType)) {
}
public:
@@ -608,12 +584,19 @@ namespace NActors {
}
class IActorCallback: public IActor {
- public:
- IActorCallback(TReceiveFunc stateFunc, ui32 activityType = OTHER)
+ protected:
+ template <class TEnum = IActor::EActivityType>
+ IActorCallback(TReceiveFunc stateFunc, const TEnum activityType = IActor::EActivityType::OTHER)
: IActor(TActorCallbackBehaviour(stateFunc), activityType) {
}
+ IActorCallback(TReceiveFunc stateFunc, const ui32 activityType)
+ : IActor(TActorCallbackBehaviour(stateFunc), activityType) {
+
+ }
+
+ public:
template <typename T>
void Become(T stateFunc) {
CImpl.Become(stateFunc);
@@ -653,6 +636,7 @@ namespace NActors {
return TLocalProcessKey<TActorActivityTag, TDerived::ActorName>::GetIndex();
} else if constexpr (HasActorActivityType<TDerived>::value) {
using TActorActivity = decltype(((TDerived*)nullptr)->ActorActivityType());
+ static_assert(std::is_enum<TActorActivity>::value);
return TEnumProcessKey<TActorActivityTag, TActorActivity>::GetIndex(TDerived::ActorActivityType());
} else {
// 200 characters is limit for solomon metric tag length
@@ -668,9 +652,13 @@ namespace NActors {
protected:
// static constexpr char ActorName[] = "UNNAMED";
- TActor(void (TDerived::*func)(TAutoPtr<IEventHandle>& ev), ui32 activityType = GetActivityTypeIndex())
- : IActorCallback(static_cast<TReceiveFunc>(func), activityType)
- {
+ TActor(void (TDerived::* func)(TAutoPtr<IEventHandle>& ev))
+ : IActorCallback(static_cast<TReceiveFunc>(func), GetActivityTypeIndex()) {
+ }
+
+ template <class TEnum = EActivityType>
+ TActor(void (TDerived::* func)(TAutoPtr<IEventHandle>& ev), const TEnum activityEnumType = EActivityType::OTHER)
+ : IActorCallback(static_cast<TReceiveFunc>(func), activityEnumType) {
}
public:
diff --git a/library/cpp/actors/core/actor_bootstrapped.h b/library/cpp/actors/core/actor_bootstrapped.h
index 8145baacff6..fff1193819b 100644
--- a/library/cpp/actors/core/actor_bootstrapped.h
+++ b/library/cpp/actors/core/actor_bootstrapped.h
@@ -35,5 +35,10 @@ namespace NActors {
TActorBootstrapped()
: TActor<TDerived>(&TDerived::StateBootstrap) {
}
+
+ template <class TEnum>
+ TActorBootstrapped(const TEnum activityType)
+ : TActor<TDerived>(&TDerived::StateBootstrap, activityType) {
+ }
};
}
diff --git a/library/cpp/actors/core/actor_coroutine.h b/library/cpp/actors/core/actor_coroutine.h
index 2f460807380..a098c334cf4 100644
--- a/library/cpp/actors/core/actor_coroutine.h
+++ b/library/cpp/actors/core/actor_coroutine.h
@@ -211,7 +211,8 @@ namespace NActors {
THolder<TActorCoroImpl> Impl;
public:
- TActorCoro(THolder<TActorCoroImpl> impl, ui32 activityType = IActor::ACTOR_COROUTINE)
+ template <class TEnumActivityType = IActor::EActivityType>
+ TActorCoro(THolder<TActorCoroImpl> impl, const TEnumActivityType activityType = IActor::EActivityType::ACTOR_COROUTINE)
: IActorCallback(static_cast<TReceiveFunc>(&TActorCoro::StateFunc), activityType)
, Impl(std::move(impl))
{}
diff --git a/library/cpp/actors/core/actor_ut.cpp b/library/cpp/actors/core/actor_ut.cpp
index 55dfb96513b..6901cc298d2 100644
--- a/library/cpp/actors/core/actor_ut.cpp
+++ b/library/cpp/actors/core/actor_ut.cpp
@@ -56,7 +56,7 @@ Y_UNIT_TEST_SUITE(ActorBenchmark) {
class TSendReceiveActor : public TActorBootstrapped<TSendReceiveActor> {
public:
static constexpr auto ActorActivityType() {
- return ACTORLIB_COMMON;
+ return EActivityType::ACTORLIB_COMMON;
}
TSendReceiveActor(double* elapsedTime, TActorId receiver, bool allocation, ERole role, ESendingType sendingType, ui32 neighbours = 0)
@@ -646,10 +646,8 @@ Y_UNIT_TEST_SUITE(TestDecorator) {
Y_UNIT_TEST(LocalProcessKey) {
static constexpr char ActorName[] = "TestActor";
- UNIT_ASSERT((TEnumProcessKey<TActorActivityTag, IActor::EActorActivity>::GetName(IActor::INTERCONNECT_PROXY_TCP) == "INTERCONNECT_PROXY_TCP"));
-
+ UNIT_ASSERT((TEnumProcessKey<TActorActivityTag, IActor::EActorActivity>::GetName(IActor::EActivityType::INTERCONNECT_PROXY_TCP) == "INTERCONNECT_PROXY_TCP"));
UNIT_ASSERT((TLocalProcessKey<TActorActivityTag, ActorName>::GetName() == ActorName));
- UNIT_ASSERT((TEnumProcessKey<TActorActivityTag, IActor::EActorActivity>::GetIndex(IActor::INTERCONNECT_PROXY_TCP) == IActor::INTERCONNECT_PROXY_TCP));
}
}
diff --git a/library/cpp/actors/core/executor_pool_basic.cpp b/library/cpp/actors/core/executor_pool_basic.cpp
index ae106564c00..4e630531865 100644
--- a/library/cpp/actors/core/executor_pool_basic.cpp
+++ b/library/cpp/actors/core/executor_pool_basic.cpp
@@ -232,7 +232,7 @@ namespace NActors {
if (needToWait && wctx.HasCapturedMessageBox) {
timers.HPNow = GetCycleCountFast();
- wctx.AddElapsedCycles(IActor::ACTOR_SYSTEM, timers.HPNow - timers.HPStart);
+ wctx.AddElapsedCycles(ActorSystemIndex, timers.HPNow - timers.HPStart);
return 0;
}
@@ -260,7 +260,7 @@ namespace NActors {
if (const ui32 activation = Activations.Pop(++revolvingCounter)) {
timers.HPNow = GetCycleCountFast();
timers.Elapsed += timers.HPNow - timers.HPStart;
- wctx.AddElapsedCycles(IActor::ACTOR_SYSTEM, timers.Elapsed);
+ wctx.AddElapsedCycles(ActorSystemIndex, timers.Elapsed);
if (timers.Parked > 0) {
wctx.AddParkedCycles(timers.Parked);
}
diff --git a/library/cpp/actors/core/executor_pool_basic.h b/library/cpp/actors/core/executor_pool_basic.h
index 813f91dc9a9..b773b6f9167 100644
--- a/library/cpp/actors/core/executor_pool_basic.h
+++ b/library/cpp/actors/core/executor_pool_basic.h
@@ -4,6 +4,7 @@
#include "executor_thread.h"
#include "scheduler_queue.h"
#include "executor_pool_base.h"
+#include "indexes.h"
#include "harmonizer.h"
#include <library/cpp/actors/util/unordered_cache.h>
#include <library/cpp/actors/util/threadparkpad.h>
@@ -82,7 +83,7 @@ namespace NActors {
IHarmonizer *Harmonizer;
const i16 Priority = 0;
-
+ const ui32 ActorSystemIndex = NActors::TActorTypeOperator::GetActorSystemIndex();
public:
struct TSemaphore {
i64 OldSemaphore = 0; // 34 bits
diff --git a/library/cpp/actors/core/executor_pool_io.cpp b/library/cpp/actors/core/executor_pool_io.cpp
index c5a2a34e564..6987bbd29c1 100644
--- a/library/cpp/actors/core/executor_pool_io.cpp
+++ b/library/cpp/actors/core/executor_pool_io.cpp
@@ -52,7 +52,7 @@ namespace NActors {
if (const ui32 activation = Activations.Pop(++revolvingCounter)) {
hpnow = GetCycleCountFast();
elapsed += hpnow - hpstart;
- wctx.AddElapsedCycles(IActor::ACTOR_SYSTEM, elapsed);
+ wctx.AddElapsedCycles(ActorSystemIndex, elapsed);
if (parked > 0) {
wctx.AddParkedCycles(parked);
}
diff --git a/library/cpp/actors/core/executor_pool_io.h b/library/cpp/actors/core/executor_pool_io.h
index e576d642a1d..6c9069d9b63 100644
--- a/library/cpp/actors/core/executor_pool_io.h
+++ b/library/cpp/actors/core/executor_pool_io.h
@@ -4,6 +4,7 @@
#include "executor_thread.h"
#include "scheduler_queue.h"
#include "executor_pool_base.h"
+#include "indexes.h"
#include <library/cpp/actors/util/ticket_lock.h>
#include <library/cpp/actors/util/unordered_cache.h>
#include <library/cpp/actors/util/threadparkpad.h>
@@ -23,7 +24,7 @@ namespace NActors {
TTicketLock ScheduleLock;
const TString PoolName;
-
+ const ui32 ActorSystemIndex = NActors::TActorTypeOperator::GetActorSystemIndex();
public:
TIOExecutorPool(ui32 poolId, ui32 threads, const TString& poolName = "", TAffinity* affinity = nullptr,
ui32 maxActivityType = 1);
diff --git a/library/cpp/actors/core/executor_pool_united.cpp b/library/cpp/actors/core/executor_pool_united.cpp
index 9dd06368be5..d1e9e15385c 100644
--- a/library/cpp/actors/core/executor_pool_united.cpp
+++ b/library/cpp/actors/core/executor_pool_united.cpp
@@ -1338,21 +1338,21 @@ namespace NActors {
}
}
- wctx.AddElapsedCycles(IActor::ACTOR_SYSTEM, timeTracker.Elapsed());
+ wctx.AddElapsedCycles(ActorSystemIndex, timeTracker.Elapsed());
return result;
}
TPoolId TUnitedWorkers::WaitSequence(TCpu& cpu, TWorkerContext& wctx, TTimeTracker& timeTracker) {
TPoolId result;
if (cpu.ActiveWait(Us2Ts(Config.SpinThresholdUs), result)) {
- wctx.AddElapsedCycles(IActor::ACTOR_SYSTEM, timeTracker.Elapsed());
+ wctx.AddElapsedCycles(ActorSystemIndex, timeTracker.Elapsed());
return result;
}
if (cpu.StartBlocking(result)) {
- wctx.AddElapsedCycles(IActor::ACTOR_SYSTEM, timeTracker.Elapsed());
+ wctx.AddElapsedCycles(ActorSystemIndex, timeTracker.Elapsed());
return result;
}
- wctx.AddElapsedCycles(IActor::ACTOR_SYSTEM, timeTracker.Elapsed());
+ wctx.AddElapsedCycles(ActorSystemIndex, timeTracker.Elapsed());
cpu.LoadLog.RegisterBusyPeriod(GetCycleCountFast());
bool wakeup;
do {
diff --git a/library/cpp/actors/core/executor_pool_united_workers.h b/library/cpp/actors/core/executor_pool_united_workers.h
index d82afd6c6d2..2b96eda762e 100644
--- a/library/cpp/actors/core/executor_pool_united_workers.h
+++ b/library/cpp/actors/core/executor_pool_united_workers.h
@@ -2,6 +2,7 @@
#include "defs.h"
#include "balancer.h"
+#include "indexes.h"
#include "scheduler_queue.h"
#include <library/cpp/actors/util/cpu_load_log.h>
@@ -31,7 +32,7 @@ namespace NActors {
volatile bool StopFlag = false;
TMinusOneCpuEstimator<1024> MinusOneCpuEstimator;
-
+ const ui32 ActorSystemIndex = NActors::TActorTypeOperator::GetActorSystemIndex();
public:
TUnitedWorkers(
const TUnitedWorkersConfig& config,
diff --git a/library/cpp/actors/core/indexes.cpp b/library/cpp/actors/core/indexes.cpp
new file mode 100644
index 00000000000..e69de29bb2d
--- /dev/null
+++ b/library/cpp/actors/core/indexes.cpp
diff --git a/library/cpp/actors/core/indexes.h b/library/cpp/actors/core/indexes.h
new file mode 100644
index 00000000000..61cc78fccc5
--- /dev/null
+++ b/library/cpp/actors/core/indexes.h
@@ -0,0 +1,59 @@
+#pragma once
+#include <library/cpp/actors/util/local_process_key.h>
+#include <library/cpp/actors/prof/tag.h>
+
+namespace NActors {
+
+struct TActorActivityTag {};
+
+}
+
+template <>
+class TLocalProcessKeyStateIndexConstructor<NActors::TActorActivityTag> {
+public:
+ static ui32 BuildCurrentIndex(const TStringBuf name, const ui32 /*currentNamesCount*/) {
+ return NProfiling::MakeTag(name.data());
+ }
+};
+namespace NActors {
+enum class EInternalActorType {
+ OTHER = 0,
+ ACTOR_SYSTEM,
+ ACTORLIB_COMMON,
+ ACTORLIB_STATS,
+ LOG_ACTOR,
+ INTERCONNECT_PROXY_TCP,
+ INTERCONNECT_SESSION_TCP,
+ INTERCONNECT_COMMON,
+ SELF_PING_ACTOR,
+ TEST_ACTOR_RUNTIME,
+ INTERCONNECT_HANDSHAKE,
+ INTERCONNECT_POLLER,
+ INTERCONNECT_SESSION_KILLER,
+ ACTOR_SYSTEM_SCHEDULER_ACTOR,
+ ACTOR_FUTURE_CALLBACK,
+ INTERCONNECT_MONACTOR,
+ INTERCONNECT_LOAD_ACTOR,
+ INTERCONNECT_LOAD_RESPONDER,
+ NAMESERVICE,
+ DNS_RESOLVER,
+ INTERCONNECT_PROXY_WRAPPER,
+ ACTOR_COROUTINE
+};
+
+class TActorTypeOperator {
+public:
+ template <class TEnum>
+ static ui32 GetEnumActivityType(const TEnum enumValue) {
+ return TEnumProcessKey<TActorActivityTag, TEnum>::GetIndex(enumValue);
+ }
+
+ static ui32 GetActorSystemIndex() {
+ return TEnumProcessKey<TActorActivityTag, EInternalActorType>::GetIndex(EInternalActorType::ACTOR_SYSTEM);
+ }
+
+ static ui32 GetOtherActivityIndex() {
+ return TEnumProcessKey<TActorActivityTag, EInternalActorType>::GetIndex(EInternalActorType::OTHER);
+ }
+};
+}
diff --git a/library/cpp/actors/core/invoke.h b/library/cpp/actors/core/invoke.h
index a971f906311..e22d5008532 100644
--- a/library/cpp/actors/core/invoke.h
+++ b/library/cpp/actors/core/invoke.h
@@ -77,19 +77,20 @@ namespace NActors {
// actor's class. But `complete` handler is invoked in parent context and can use its contents. Do not forget to
// handle TEvInvokeResult event by calling Process/GetResult method, whichever is necessary.
- template<typename TCallback, typename TCompletion, ui32 Activity>
- class TInvokeActor : public TActorBootstrapped<TInvokeActor<TCallback, TCompletion, Activity>> {
+ template<typename TCallback, typename TCompletion, class TEnum>
+ class TInvokeActor : public TActorBootstrapped<TInvokeActor<TCallback, TCompletion, TEnum>> {
+ private:
+ using TBase = TActorBootstrapped<TInvokeActor<TCallback, TCompletion, TEnum>>;
TCallback Callback;
TCompletion Complete;
-
+ const TEnum Activity;
+ static_assert(std::is_enum<TEnum>::value);
public:
- static constexpr auto ActorActivityType() {
- return static_cast<IActor::EActorActivity>(Activity);
- }
-
- TInvokeActor(TCallback&& callback, TCompletion&& complete)
- : Callback(std::move(callback))
+ TInvokeActor(TCallback&& callback, TCompletion&& complete, const TEnum activity)
+ : TBase(activity)
+ , Callback(std::move(callback))
, Complete(std::move(complete))
+ , Activity(activity)
{}
void Bootstrap(const TActorId& parentId, const TActorContext& ctx) {
@@ -101,10 +102,10 @@ namespace NActors {
}
};
- template<ui32 Activity, typename TCallback, typename TCompletion>
- std::unique_ptr<IActor> CreateInvokeActor(TCallback&& callback, TCompletion&& complete) {
- return std::make_unique<TInvokeActor<std::decay_t<TCallback>, std::decay_t<TCompletion>, Activity>>(
- std::forward<TCallback>(callback), std::forward<TCompletion>(complete));
+ template<typename TEnum, typename TCallback, typename TCompletion>
+ std::unique_ptr<IActor> CreateInvokeActor(TCallback&& callback, TCompletion&& complete, const TEnum activity) {
+ return std::make_unique<TInvokeActor<std::decay_t<TCallback>, std::decay_t<TCompletion>, TEnum>>(
+ std::forward<TCallback>(callback), std::forward<TCompletion>(complete), activity);
}
template <class TInvokeExecutor>
diff --git a/library/cpp/actors/core/log.h b/library/cpp/actors/core/log.h
index 36b9ac0980a..6899fb9ca40 100644
--- a/library/cpp/actors/core/log.h
+++ b/library/cpp/actors/core/log.h
@@ -197,8 +197,8 @@ namespace NActors {
////////////////////////////////////////////////////////////////////////////////
class TLoggerActor: public TActor<TLoggerActor> {
public:
- static constexpr IActor::EActivityType ActorActivityType() {
- return IActor::LOG_ACTOR;
+ static IActor::EActivityType ActorActivityType() {
+ return IActor::EActivityType::LOG_ACTOR;
}
TLoggerActor(TIntrusivePtr<NLog::TSettings> settings,
diff --git a/library/cpp/actors/core/process_stats.cpp b/library/cpp/actors/core/process_stats.cpp
index 349d207a71e..b690d92d8d9 100644
--- a/library/cpp/actors/core/process_stats.cpp
+++ b/library/cpp/actors/core/process_stats.cpp
@@ -146,7 +146,7 @@ namespace {
class TProcStatCollectingActor: public TActorBootstrapped<TProcStatCollectingActor<TDerived>> {
public:
static constexpr IActor::EActivityType ActorActivityType() {
- return IActor::ACTORLIB_STATS;
+ return IActor::EActivityType::ACTORLIB_STATS;
}
TProcStatCollectingActor(TDuration interval)
diff --git a/library/cpp/actors/core/scheduler_actor.cpp b/library/cpp/actors/core/scheduler_actor.cpp
index fef051da619..db2bcf2791b 100644
--- a/library/cpp/actors/core/scheduler_actor.cpp
+++ b/library/cpp/actors/core/scheduler_actor.cpp
@@ -61,7 +61,7 @@ namespace NActors {
public:
static constexpr IActor::EActivityType ActorActivityType() {
- return IActor::ACTOR_SYSTEM_SCHEDULER_ACTOR;
+ return IActor::EActivityType::ACTOR_SYSTEM_SCHEDULER_ACTOR;
}
TSchedulerActor(const TSchedulerConfig& cfg)
diff --git a/library/cpp/actors/core/ya.make b/library/cpp/actors/core/ya.make
index d5a67c03a52..7dcfdd7c3dd 100644
--- a/library/cpp/actors/core/ya.make
+++ b/library/cpp/actors/core/ya.make
@@ -63,6 +63,7 @@ SRCS(
interconnect.cpp
interconnect.h
invoke.h
+ indexes.cpp
io_dispatcher.cpp
io_dispatcher.h
lease.h
@@ -101,6 +102,7 @@ SRCS(
GENERATE_ENUM_SERIALIZATION(defs.h)
GENERATE_ENUM_SERIALIZATION(actor.h)
+GENERATE_ENUM_SERIALIZATION(indexes.h)
GENERATE_ENUM_SERIALIZATION(log_iface.h)
PEERDIR(
diff --git a/library/cpp/actors/dnsresolver/dnsresolver.cpp b/library/cpp/actors/dnsresolver/dnsresolver.cpp
index 71e7f4d037f..fb66be86169 100644
--- a/library/cpp/actors/dnsresolver/dnsresolver.cpp
+++ b/library/cpp/actors/dnsresolver/dnsresolver.cpp
@@ -163,7 +163,7 @@ namespace NDnsResolver {
}
static constexpr EActivityType ActorActivityType() {
- return DNS_RESOLVER;
+ return EActivityType::DNS_RESOLVER;
}
private:
diff --git a/library/cpp/actors/dnsresolver/dnsresolver_caching.cpp b/library/cpp/actors/dnsresolver/dnsresolver_caching.cpp
index a7e38806c03..d16fc28e5f8 100644
--- a/library/cpp/actors/dnsresolver/dnsresolver_caching.cpp
+++ b/library/cpp/actors/dnsresolver/dnsresolver_caching.cpp
@@ -98,7 +98,7 @@ namespace NDnsResolver {
{ }
static constexpr EActivityType ActorActivityType() {
- return DNS_RESOLVER;
+ return EActivityType::DNS_RESOLVER;
}
private:
diff --git a/library/cpp/actors/dnsresolver/dnsresolver_ondemand.cpp b/library/cpp/actors/dnsresolver/dnsresolver_ondemand.cpp
index f55251e2809..8b0ddf5a6d7 100644
--- a/library/cpp/actors/dnsresolver/dnsresolver_ondemand.cpp
+++ b/library/cpp/actors/dnsresolver/dnsresolver_ondemand.cpp
@@ -13,7 +13,7 @@ namespace NDnsResolver {
{ }
static constexpr EActivityType ActorActivityType() {
- return DNS_RESOLVER;
+ return EActivityType::DNS_RESOLVER;
}
private:
diff --git a/library/cpp/actors/helpers/flow_controlled_queue.cpp b/library/cpp/actors/helpers/flow_controlled_queue.cpp
index 104d239481b..49ed7c79f0d 100644
--- a/library/cpp/actors/helpers/flow_controlled_queue.cpp
+++ b/library/cpp/actors/helpers/flow_controlled_queue.cpp
@@ -153,7 +153,8 @@ class TFlowControlledRequestQueue : public IActorCallback {
PassAway();
}
public:
- TFlowControlledRequestQueue(TActorId target, ui32 activity, const TFlowControlledQueueConfig &config)
+ template <class TEnum>
+ TFlowControlledRequestQueue(TActorId target, const TEnum activity, const TFlowControlledQueueConfig &config)
: IActorCallback(static_cast<TReceiveFunc>(&TFlowControlledRequestQueue::StateWork), activity)
, Target(target)
, Config(config)
@@ -206,8 +207,8 @@ void TFlowControlledRequestActor::HandleUndelivered(TEvents::TEvUndelivered::TPt
PassAway();
}
-
-IActor* CreateFlowControlledRequestQueue(TActorId targetId, ui32 activity, const TFlowControlledQueueConfig &config) {
+template <class TEnum>
+IActor* CreateFlowControlledRequestQueue(TActorId targetId, const TEnum activity, const TFlowControlledQueueConfig &config) {
return new TFlowControlledRequestQueue(targetId, activity, config);
}
diff --git a/library/cpp/actors/helpers/flow_controlled_queue.h b/library/cpp/actors/helpers/flow_controlled_queue.h
index d2504053047..bbfffa18d7f 100644
--- a/library/cpp/actors/helpers/flow_controlled_queue.h
+++ b/library/cpp/actors/helpers/flow_controlled_queue.h
@@ -13,6 +13,7 @@ namespace NActors {
ui32 LatencyFactor = 4;
};
- IActor* CreateFlowControlledRequestQueue(TActorId targetId, ui32 activity = IActor::ACTORLIB_COMMON, const TFlowControlledQueueConfig &config = TFlowControlledQueueConfig());
+ template <class TEnum = IActor::EActivityType>
+ IActor* CreateFlowControlledRequestQueue(TActorId targetId, const TEnum activity = IActor::EActivityType::ACTORLIB_COMMON, const TFlowControlledQueueConfig &config = TFlowControlledQueueConfig());
}
diff --git a/library/cpp/actors/helpers/future_callback.h b/library/cpp/actors/helpers/future_callback.h
index 8ca0d99fdae..6626dd439d2 100644
--- a/library/cpp/actors/helpers/future_callback.h
+++ b/library/cpp/actors/helpers/future_callback.h
@@ -12,7 +12,7 @@ struct TActorFutureCallback : TActor<TActorFutureCallback<EventType>> {
TCallback Callback;
static constexpr IActor::EActivityType ActorActivityType() {
- return IActor::ACTOR_FUTURE_CALLBACK;
+ return IActor::EActivityType::ACTOR_FUTURE_CALLBACK;
}
TActorFutureCallback(TCallback&& callback)
diff --git a/library/cpp/actors/helpers/pool_stats_collector.h b/library/cpp/actors/helpers/pool_stats_collector.h
index a122f7f2f0b..471fd7211c5 100644
--- a/library/cpp/actors/helpers/pool_stats_collector.h
+++ b/library/cpp/actors/helpers/pool_stats_collector.h
@@ -338,7 +338,7 @@ private:
public:
static constexpr IActor::EActivityType ActorActivityType() {
- return IActor::ACTORLIB_STATS;
+ return IActor::EActivityType::ACTORLIB_STATS;
}
TStatsCollectingActor(
diff --git a/library/cpp/actors/helpers/selfping_actor.cpp b/library/cpp/actors/helpers/selfping_actor.cpp
index dcad5931c97..0ab1dc57e41 100644
--- a/library/cpp/actors/helpers/selfping_actor.cpp
+++ b/library/cpp/actors/helpers/selfping_actor.cpp
@@ -122,7 +122,7 @@ private:
public:
static constexpr auto ActorActivityType() {
- return SELF_PING_ACTOR;
+ return EActivityType::SELF_PING_ACTOR;
}
TSelfPingActor(TDuration sendInterval,
diff --git a/library/cpp/actors/interconnect/interconnect_handshake.cpp b/library/cpp/actors/interconnect/interconnect_handshake.cpp
index 9b2cf91a694..00ebaa5217f 100644
--- a/library/cpp/actors/interconnect/interconnect_handshake.cpp
+++ b/library/cpp/actors/interconnect/interconnect_handshake.cpp
@@ -1218,12 +1218,12 @@ namespace NActors {
const TActorId& peer, ui32 nodeId, ui64 nextPacket, TString peerHostName,
TSessionParams params) {
return new TActorCoro(MakeHolder<THandshakeActor>(std::move(common), self, peer, nodeId, nextPacket,
- std::move(peerHostName), std::move(params)), IActor::INTERCONNECT_HANDSHAKE);
+ std::move(peerHostName), std::move(params)), IActor::EActivityType::INTERCONNECT_HANDSHAKE);
}
IActor* CreateIncomingHandshakeActor(TInterconnectProxyCommon::TPtr common, TSocketPtr socket) {
return new TActorCoro(MakeHolder<THandshakeActor>(std::move(common), std::move(socket)),
- IActor::INTERCONNECT_HANDSHAKE);
+ IActor::EActivityType::INTERCONNECT_HANDSHAKE);
}
}
diff --git a/library/cpp/actors/interconnect/interconnect_mon.cpp b/library/cpp/actors/interconnect/interconnect_mon.cpp
index 6be0b894b87..f8245e1d723 100644
--- a/library/cpp/actors/interconnect/interconnect_mon.cpp
+++ b/library/cpp/actors/interconnect/interconnect_mon.cpp
@@ -21,7 +21,7 @@ namespace NInterconnect {
public:
static constexpr IActor::EActorActivity ActorActivityType() {
- return INTERCONNECT_MONACTOR;
+ return EActivityType::INTERCONNECT_MONACTOR;
}
TQueryProcessor(const TActorId& sender, bool json)
@@ -190,7 +190,7 @@ namespace NInterconnect {
public:
static constexpr IActor::EActorActivity ActorActivityType() {
- return INTERCONNECT_MONACTOR;
+ return EActivityType::INTERCONNECT_MONACTOR;
}
TInterconnectMonActor(TIntrusivePtr<TInterconnectProxyCommon> common)
diff --git a/library/cpp/actors/interconnect/interconnect_nameserver_dynamic.cpp b/library/cpp/actors/interconnect/interconnect_nameserver_dynamic.cpp
index 6ab3d84724d..1a563454df3 100644
--- a/library/cpp/actors/interconnect/interconnect_nameserver_dynamic.cpp
+++ b/library/cpp/actors/interconnect/interconnect_nameserver_dynamic.cpp
@@ -88,7 +88,7 @@ namespace NActors {
public:
static constexpr EActivityType ActorActivityType() {
- return NAMESERVICE;
+ return EActivityType::NAMESERVICE;
}
TInterconnectDynamicNameserver(const TIntrusivePtr<TTableNameserverSetup>& setup, const TDuration& pendingPeriod, ui32 /*resolvePoolId*/ )
diff --git a/library/cpp/actors/interconnect/interconnect_nameserver_table.cpp b/library/cpp/actors/interconnect/interconnect_nameserver_table.cpp
index 43419bf70d3..e5507b9838e 100644
--- a/library/cpp/actors/interconnect/interconnect_nameserver_table.cpp
+++ b/library/cpp/actors/interconnect/interconnect_nameserver_table.cpp
@@ -14,7 +14,7 @@ namespace NActors {
public:
static constexpr EActivityType ActorActivityType() {
- return NAMESERVICE;
+ return EActivityType::NAMESERVICE;
}
TInterconnectNameserverTable(const TIntrusivePtr<TTableNameserverSetup>& setup, ui32 /*resolvePoolId*/)
diff --git a/library/cpp/actors/interconnect/interconnect_proxy_wrapper.cpp b/library/cpp/actors/interconnect/interconnect_proxy_wrapper.cpp
index b68d4242b60..0692cea963b 100644
--- a/library/cpp/actors/interconnect/interconnect_proxy_wrapper.cpp
+++ b/library/cpp/actors/interconnect/interconnect_proxy_wrapper.cpp
@@ -12,7 +12,7 @@ namespace NActors {
public:
TInterconnectProxyWrapper(TIntrusivePtr<TInterconnectProxyCommon> common, ui32 nodeId, TInterconnectMock *mock)
- : IActorCallback(static_cast<TReceiveFunc>(&TInterconnectProxyWrapper::StateFunc), INTERCONNECT_PROXY_WRAPPER)
+ : IActorCallback(static_cast<TReceiveFunc>(&TInterconnectProxyWrapper::StateFunc), EActivityType::INTERCONNECT_PROXY_WRAPPER)
, Common(std::move(common))
, NodeId(nodeId)
, Mock(mock)
diff --git a/library/cpp/actors/interconnect/interconnect_resolve.cpp b/library/cpp/actors/interconnect/interconnect_resolve.cpp
index d638ff830cd..921f08fba6f 100644
--- a/library/cpp/actors/interconnect/interconnect_resolve.cpp
+++ b/library/cpp/actors/interconnect/interconnect_resolve.cpp
@@ -39,7 +39,7 @@ namespace NActors {
{ }
static constexpr EActivityType ActorActivityType() {
- return NAMESERVICE;
+ return EActivityType::NAMESERVICE;
}
void Bootstrap() {
diff --git a/library/cpp/actors/interconnect/interconnect_tcp_proxy.h b/library/cpp/actors/interconnect/interconnect_tcp_proxy.h
index 9ea7fa0c312..009d5f1c21a 100644
--- a/library/cpp/actors/interconnect/interconnect_tcp_proxy.h
+++ b/library/cpp/actors/interconnect/interconnect_tcp_proxy.h
@@ -58,7 +58,7 @@ namespace NActors {
};
static constexpr EActivityType ActorActivityType() {
- return INTERCONNECT_PROXY_TCP;
+ return EActivityType::INTERCONNECT_PROXY_TCP;
}
TInterconnectProxyTCP(const ui32 node, TInterconnectProxyCommon::TPtr common, IActor **dynamicPtr = nullptr);
diff --git a/library/cpp/actors/interconnect/interconnect_tcp_server.h b/library/cpp/actors/interconnect/interconnect_tcp_server.h
index d3538940b70..41f46ab6d42 100644
--- a/library/cpp/actors/interconnect/interconnect_tcp_server.h
+++ b/library/cpp/actors/interconnect/interconnect_tcp_server.h
@@ -12,7 +12,7 @@ namespace NActors {
class TInterconnectListenerTCP: public TActor<TInterconnectListenerTCP>, public TInterconnectLoggingBase {
public:
static constexpr EActivityType ActorActivityType() {
- return INTERCONNECT_COMMON;
+ return EActivityType::INTERCONNECT_COMMON;
}
TInterconnectListenerTCP(const TString& address, ui16 port, TInterconnectProxyCommon::TPtr common, const TMaybe<SOCKET>& socket = Nothing());
diff --git a/library/cpp/actors/interconnect/interconnect_tcp_session.h b/library/cpp/actors/interconnect/interconnect_tcp_session.h
index 12000570063..adc9fd3710d 100644
--- a/library/cpp/actors/interconnect/interconnect_tcp_session.h
+++ b/library/cpp/actors/interconnect/interconnect_tcp_session.h
@@ -203,7 +203,7 @@ namespace NActors {
public:
static constexpr EActivityType ActorActivityType() {
- return INTERCONNECT_SESSION_TCP;
+ return EActivityType::INTERCONNECT_SESSION_TCP;
}
TInputSessionTCP(const TActorId& sessionId,
@@ -411,7 +411,7 @@ namespace NActors {
public:
static constexpr EActivityType ActorActivityType() {
- return INTERCONNECT_SESSION_TCP;
+ return EActivityType::INTERCONNECT_SESSION_TCP;
}
TInterconnectSessionTCP(TInterconnectProxyTCP* const proxy, TSessionParams params);
@@ -646,7 +646,7 @@ namespace NActors {
public:
static constexpr EActivityType ActorActivityType() {
- return INTERCONNECT_SESSION_KILLER;
+ return EActivityType::INTERCONNECT_SESSION_KILLER;
}
TInterconnectSessionKiller(TInterconnectProxyCommon::TPtr common)
diff --git a/library/cpp/actors/interconnect/load.cpp b/library/cpp/actors/interconnect/load.cpp
index d460903f35d..20ca0ef8a94 100644
--- a/library/cpp/actors/interconnect/load.cpp
+++ b/library/cpp/actors/interconnect/load.cpp
@@ -64,7 +64,7 @@ namespace NInterconnect {
{}
static constexpr IActor::EActivityType ActorActivityType() {
- return IActor::INTERCONNECT_LOAD_RESPONDER;
+ return IActor::EActivityType::INTERCONNECT_LOAD_RESPONDER;
}
private:
@@ -101,7 +101,7 @@ namespace NInterconnect {
public:
static constexpr IActor::EActivityType ActorActivityType() {
- return IActor::INTERCONNECT_LOAD_RESPONDER;
+ return IActor::EActivityType::INTERCONNECT_LOAD_RESPONDER;
}
TLoadResponderMasterActor()
@@ -151,7 +151,7 @@ namespace NInterconnect {
public:
static constexpr IActor::EActivityType ActorActivityType() {
- return IActor::INTERCONNECT_LOAD_ACTOR;
+ return IActor::EActivityType::INTERCONNECT_LOAD_ACTOR;
}
TLoadActor(const TLoadParams& params)
diff --git a/library/cpp/actors/interconnect/poller_actor.cpp b/library/cpp/actors/interconnect/poller_actor.cpp
index 1646aa7016f..9dbd9838aa6 100644
--- a/library/cpp/actors/interconnect/poller_actor.cpp
+++ b/library/cpp/actors/interconnect/poller_actor.cpp
@@ -247,7 +247,7 @@ namespace NActors {
public:
static constexpr IActor::EActivityType ActorActivityType() {
- return IActor::INTERCONNECT_POLLER;
+ return IActor::EActivityType::INTERCONNECT_POLLER;
}
void Bootstrap() {
diff --git a/library/cpp/actors/testlib/test_runtime.cpp b/library/cpp/actors/testlib/test_runtime.cpp
index e093b2e6bf4..92745747675 100644
--- a/library/cpp/actors/testlib/test_runtime.cpp
+++ b/library/cpp/actors/testlib/test_runtime.cpp
@@ -85,7 +85,7 @@ namespace NActors {
class TTestActorRuntimeBase::TEdgeActor : public TActor<TEdgeActor> {
public:
static constexpr EActivityType ActorActivityType() {
- return TEST_ACTOR_RUNTIME;
+ return EActivityType::TEST_ACTOR_RUNTIME;
}
TEdgeActor(TTestActorRuntimeBase* runtime)
@@ -1802,7 +1802,7 @@ namespace NActors {
class TReplyActor : public TActor<TReplyActor> {
public:
static constexpr EActivityType ActorActivityType() {
- return TEST_ACTOR_RUNTIME;
+ return EActivityType::TEST_ACTOR_RUNTIME;
}
TReplyActor(TStrandingActorDecorator* owner)
@@ -1818,7 +1818,7 @@ namespace NActors {
};
static constexpr EActivityType ActorActivityType() {
- return TEST_ACTOR_RUNTIME;
+ return EActivityType::TEST_ACTOR_RUNTIME;
}
TStrandingActorDecorator(const TActorId& delegatee, bool isSync, const TVector<TActorId>& additionalActors,
diff --git a/library/cpp/actors/util/local_process_key.h b/library/cpp/actors/util/local_process_key.h
index 28fd590d379..1ba756e8d5d 100644
--- a/library/cpp/actors/util/local_process_key.h
+++ b/library/cpp/actors/util/local_process_key.h
@@ -49,12 +49,12 @@ public:
Names.resize(MaxKeysCount);
}
-private:
-
- static constexpr ui32 MaxKeysCount = 1000000;
-
size_t Register(TStringBuf name) {
TGuard<TMutex> g(Mutex);
+ auto it = Map.find(name);
+ if (it != Map.end()) {
+ return it->second;
+ }
const ui32 index = TLocalProcessKeyStateIndexConstructor<T>::BuildCurrentIndex(name, Names.size());
auto x = Map.emplace(name, index);
if (x.second) {
@@ -66,6 +66,10 @@ private:
}
private:
+
+ static constexpr ui32 MaxKeysCount = 1000000;
+
+private:
TVector<TString> Names;
THashMap<TString, size_t> Map;
TMutex Mutex;
@@ -115,11 +119,11 @@ private:
template <typename T, typename EnumT>
class TEnumProcessKey {
public:
- static TStringBuf GetName(EnumT key) {
+ static TStringBuf GetName(const EnumT key) {
return TLocalProcessKeyState<T>::GetInstance().GetNameByIndex(GetIndex(key));
}
- static size_t GetIndex(EnumT key) {
+ static size_t GetIndex(const EnumT key) {
ui32 index = static_cast<ui32>(key);
Y_VERIFY(index < Enum2Index.size());
return Enum2Index[index];