aboutsummaryrefslogtreecommitdiffstats
path: root/library
diff options
context:
space:
mode:
authorivanmorozov <ivanmorozov@yandex-team.com>2023-07-18 13:46:54 +0300
committerivanmorozov <ivanmorozov@yandex-team.com>2023-07-18 13:46:54 +0300
commit8c8a4c1d7d49f7f55e2d3b30f638b53b7c890273 (patch)
treef0846bb348a8398d4f6034ed5b51da21c95f798a /library
parent052358e7e8b9ed4e61d39a32876f2a94f1113539 (diff)
downloadydb-8c8a4c1d7d49f7f55e2d3b30f638b53b7c890273.tar.gz
guard for memory markers + split actor type operators
Diffstat (limited to 'library')
-rw-r--r--library/cpp/actors/CMakeLists.txt1
-rw-r--r--library/cpp/actors/actor_type/CMakeLists.darwin-x86_64.txt33
-rw-r--r--library/cpp/actors/actor_type/CMakeLists.linux-aarch64.txt34
-rw-r--r--library/cpp/actors/actor_type/CMakeLists.linux-x86_64.txt34
-rw-r--r--library/cpp/actors/actor_type/CMakeLists.txt17
-rw-r--r--library/cpp/actors/actor_type/CMakeLists.windows-x86_64.txt33
-rw-r--r--library/cpp/actors/actor_type/common.cpp5
-rw-r--r--library/cpp/actors/actor_type/common.h34
-rw-r--r--library/cpp/actors/actor_type/index_constructor.cpp5
-rw-r--r--library/cpp/actors/actor_type/index_constructor.h12
-rw-r--r--library/cpp/actors/actor_type/indexes.cpp5
-rw-r--r--library/cpp/actors/actor_type/indexes.h31
-rw-r--r--library/cpp/actors/actor_type/ya.make16
-rw-r--r--library/cpp/actors/core/CMakeLists.darwin-x86_64.txt14
-rw-r--r--library/cpp/actors/core/CMakeLists.linux-aarch64.txt14
-rw-r--r--library/cpp/actors/core/CMakeLists.linux-x86_64.txt14
-rw-r--r--library/cpp/actors/core/CMakeLists.windows-x86_64.txt14
-rw-r--r--library/cpp/actors/core/actor.h2
-rw-r--r--library/cpp/actors/core/event_load.cpp5
-rw-r--r--library/cpp/actors/core/executor_pool_basic.h2
-rw-r--r--library/cpp/actors/core/executor_pool_io.h2
-rw-r--r--library/cpp/actors/core/executor_pool_united_workers.h2
-rw-r--r--library/cpp/actors/core/indexes.cpp0
-rw-r--r--library/cpp/actors/core/indexes.h68
-rw-r--r--library/cpp/actors/core/ya.make5
-rw-r--r--library/cpp/actors/prof/tag.cpp12
-rw-r--r--library/cpp/actors/prof/tag.h13
-rw-r--r--library/cpp/actors/util/local_process_key.h1
28 files changed, 303 insertions, 125 deletions
diff --git a/library/cpp/actors/CMakeLists.txt b/library/cpp/actors/CMakeLists.txt
index 583970ecf5..45fe46a94d 100644
--- a/library/cpp/actors/CMakeLists.txt
+++ b/library/cpp/actors/CMakeLists.txt
@@ -6,6 +6,7 @@
# original buildsystem will not be accepted.
+add_subdirectory(actor_type)
add_subdirectory(core)
add_subdirectory(dnscachelib)
add_subdirectory(dnsresolver)
diff --git a/library/cpp/actors/actor_type/CMakeLists.darwin-x86_64.txt b/library/cpp/actors/actor_type/CMakeLists.darwin-x86_64.txt
new file mode 100644
index 0000000000..825e96d2d8
--- /dev/null
+++ b/library/cpp/actors/actor_type/CMakeLists.darwin-x86_64.txt
@@ -0,0 +1,33 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+get_built_tool_path(
+ TOOL_enum_parser_bin
+ TOOL_enum_parser_dependency
+ tools/enum_parser/enum_parser
+ enum_parser
+)
+
+add_library(cpp-actors-actor_type)
+target_link_libraries(cpp-actors-actor_type PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-actors-util
+ cpp-actors-prof
+ tools-enum_parser-enum_serialization_runtime
+)
+target_sources(cpp-actors-actor_type PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/actor_type/common.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/actor_type/indexes.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/actor_type/index_constructor.cpp
+)
+generate_enum_serilization(cpp-actors-actor_type
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/actor_type/common.h
+ INCLUDE_HEADERS
+ library/cpp/actors/actor_type/common.h
+)
diff --git a/library/cpp/actors/actor_type/CMakeLists.linux-aarch64.txt b/library/cpp/actors/actor_type/CMakeLists.linux-aarch64.txt
new file mode 100644
index 0000000000..dc1ebb7a22
--- /dev/null
+++ b/library/cpp/actors/actor_type/CMakeLists.linux-aarch64.txt
@@ -0,0 +1,34 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+get_built_tool_path(
+ TOOL_enum_parser_bin
+ TOOL_enum_parser_dependency
+ tools/enum_parser/enum_parser
+ enum_parser
+)
+
+add_library(cpp-actors-actor_type)
+target_link_libraries(cpp-actors-actor_type PUBLIC
+ contrib-libs-linux-headers
+ contrib-libs-cxxsupp
+ yutil
+ cpp-actors-util
+ cpp-actors-prof
+ tools-enum_parser-enum_serialization_runtime
+)
+target_sources(cpp-actors-actor_type PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/actor_type/common.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/actor_type/indexes.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/actor_type/index_constructor.cpp
+)
+generate_enum_serilization(cpp-actors-actor_type
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/actor_type/common.h
+ INCLUDE_HEADERS
+ library/cpp/actors/actor_type/common.h
+)
diff --git a/library/cpp/actors/actor_type/CMakeLists.linux-x86_64.txt b/library/cpp/actors/actor_type/CMakeLists.linux-x86_64.txt
new file mode 100644
index 0000000000..dc1ebb7a22
--- /dev/null
+++ b/library/cpp/actors/actor_type/CMakeLists.linux-x86_64.txt
@@ -0,0 +1,34 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+get_built_tool_path(
+ TOOL_enum_parser_bin
+ TOOL_enum_parser_dependency
+ tools/enum_parser/enum_parser
+ enum_parser
+)
+
+add_library(cpp-actors-actor_type)
+target_link_libraries(cpp-actors-actor_type PUBLIC
+ contrib-libs-linux-headers
+ contrib-libs-cxxsupp
+ yutil
+ cpp-actors-util
+ cpp-actors-prof
+ tools-enum_parser-enum_serialization_runtime
+)
+target_sources(cpp-actors-actor_type PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/actor_type/common.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/actor_type/indexes.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/actor_type/index_constructor.cpp
+)
+generate_enum_serilization(cpp-actors-actor_type
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/actor_type/common.h
+ INCLUDE_HEADERS
+ library/cpp/actors/actor_type/common.h
+)
diff --git a/library/cpp/actors/actor_type/CMakeLists.txt b/library/cpp/actors/actor_type/CMakeLists.txt
new file mode 100644
index 0000000000..f8b31df0c1
--- /dev/null
+++ b/library/cpp/actors/actor_type/CMakeLists.txt
@@ -0,0 +1,17 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarch64" AND NOT HAVE_CUDA)
+ include(CMakeLists.linux-aarch64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
+ include(CMakeLists.darwin-x86_64.txt)
+elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
+ include(CMakeLists.windows-x86_64.txt)
+elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
+ include(CMakeLists.linux-x86_64.txt)
+endif()
diff --git a/library/cpp/actors/actor_type/CMakeLists.windows-x86_64.txt b/library/cpp/actors/actor_type/CMakeLists.windows-x86_64.txt
new file mode 100644
index 0000000000..825e96d2d8
--- /dev/null
+++ b/library/cpp/actors/actor_type/CMakeLists.windows-x86_64.txt
@@ -0,0 +1,33 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+get_built_tool_path(
+ TOOL_enum_parser_bin
+ TOOL_enum_parser_dependency
+ tools/enum_parser/enum_parser
+ enum_parser
+)
+
+add_library(cpp-actors-actor_type)
+target_link_libraries(cpp-actors-actor_type PUBLIC
+ contrib-libs-cxxsupp
+ yutil
+ cpp-actors-util
+ cpp-actors-prof
+ tools-enum_parser-enum_serialization_runtime
+)
+target_sources(cpp-actors-actor_type PRIVATE
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/actor_type/common.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/actor_type/indexes.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/actor_type/index_constructor.cpp
+)
+generate_enum_serilization(cpp-actors-actor_type
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/actor_type/common.h
+ INCLUDE_HEADERS
+ library/cpp/actors/actor_type/common.h
+)
diff --git a/library/cpp/actors/actor_type/common.cpp b/library/cpp/actors/actor_type/common.cpp
new file mode 100644
index 0000000000..be8569b7f5
--- /dev/null
+++ b/library/cpp/actors/actor_type/common.cpp
@@ -0,0 +1,5 @@
+#include "common.h"
+
+namespace NActors {
+
+}
diff --git a/library/cpp/actors/actor_type/common.h b/library/cpp/actors/actor_type/common.h
new file mode 100644
index 0000000000..cfda827c3f
--- /dev/null
+++ b/library/cpp/actors/actor_type/common.h
@@ -0,0 +1,34 @@
+#pragma once
+namespace NActors {
+
+struct TActorActivityTag {};
+
+}
+
+namespace NActors {
+enum class EInternalActorType {
+ OTHER = 0,
+ INCORRECT_ACTOR_TYPE_INDEX,
+ 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
+};
+}
diff --git a/library/cpp/actors/actor_type/index_constructor.cpp b/library/cpp/actors/actor_type/index_constructor.cpp
new file mode 100644
index 0000000000..667d3617c3
--- /dev/null
+++ b/library/cpp/actors/actor_type/index_constructor.cpp
@@ -0,0 +1,5 @@
+#include "index_constructor.h"
+
+namespace NActors {
+
+}
diff --git a/library/cpp/actors/actor_type/index_constructor.h b/library/cpp/actors/actor_type/index_constructor.h
new file mode 100644
index 0000000000..b533643a61
--- /dev/null
+++ b/library/cpp/actors/actor_type/index_constructor.h
@@ -0,0 +1,12 @@
+#pragma once
+#include "common.h"
+#include <library/cpp/actors/util/local_process_key.h>
+#include <library/cpp/actors/prof/tag.h>
+
+template <>
+class TLocalProcessKeyStateIndexConstructor<NActors::TActorActivityTag> {
+public:
+ static ui32 BuildCurrentIndex(const TStringBuf name, const ui32 /*currentNamesCount*/) {
+ return NProfiling::MakeTag(name.data());
+ }
+};
diff --git a/library/cpp/actors/actor_type/indexes.cpp b/library/cpp/actors/actor_type/indexes.cpp
new file mode 100644
index 0000000000..628eae08d8
--- /dev/null
+++ b/library/cpp/actors/actor_type/indexes.cpp
@@ -0,0 +1,5 @@
+#include "indexes.h"
+
+namespace NActors {
+
+}
diff --git a/library/cpp/actors/actor_type/indexes.h b/library/cpp/actors/actor_type/indexes.h
new file mode 100644
index 0000000000..a971847056
--- /dev/null
+++ b/library/cpp/actors/actor_type/indexes.h
@@ -0,0 +1,31 @@
+#pragma once
+#include "common.h"
+#include "index_constructor.h"
+#include <library/cpp/actors/util/local_process_key.h>
+
+namespace NActors {
+
+class TActorTypeOperator {
+public:
+ static constexpr ui32 GetMaxAvailableActorsCount() {
+ return TLocalProcessKeyStateIndexLimiter::GetMaxKeysCount();
+ }
+
+ 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);
+ }
+
+ static ui32 GetActorActivityIncorrectIndex() {
+ return TEnumProcessKey<TActorActivityTag, EInternalActorType>::GetIndex(EInternalActorType::INCORRECT_ACTOR_TYPE_INDEX);
+ }
+};
+}
diff --git a/library/cpp/actors/actor_type/ya.make b/library/cpp/actors/actor_type/ya.make
new file mode 100644
index 0000000000..736e99cf49
--- /dev/null
+++ b/library/cpp/actors/actor_type/ya.make
@@ -0,0 +1,16 @@
+LIBRARY()
+
+SRCS(
+ common.cpp
+ indexes.cpp
+ index_constructor.cpp
+)
+
+PEERDIR(
+ library/cpp/actors/util
+ library/cpp/actors/prof
+)
+
+GENERATE_ENUM_SERIALIZATION(common.h)
+
+END()
diff --git a/library/cpp/actors/core/CMakeLists.darwin-x86_64.txt b/library/cpp/actors/core/CMakeLists.darwin-x86_64.txt
index ad0db0f571..c5c1629513 100644
--- a/library/cpp/actors/core/CMakeLists.darwin-x86_64.txt
+++ b/library/cpp/actors/core/CMakeLists.darwin-x86_64.txt
@@ -25,18 +25,13 @@ 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
contrib-libs-cxxsupp
yutil
tools-enum_parser-enum_serialization_runtime
+ cpp-actors-actor_type
cpp-actors-memory_log
cpp-actors-prof
cpp-actors-protos
@@ -64,6 +59,7 @@ target_sources(cpp-actors-core PRIVATE
${CMAKE_SOURCE_DIR}/library/cpp/actors/core/callstack.cpp
${CMAKE_SOURCE_DIR}/library/cpp/actors/core/cpu_manager.cpp
${CMAKE_SOURCE_DIR}/library/cpp/actors/core/event.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/core/event_load.cpp
${CMAKE_SOURCE_DIR}/library/cpp/actors/core/event_pb.cpp
${CMAKE_SOURCE_DIR}/library/cpp/actors/core/events_undelivered.cpp
${CMAKE_SOURCE_DIR}/library/cpp/actors/core/executor_pool_base.cpp
@@ -73,7 +69,6 @@ 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
@@ -99,11 +94,6 @@ 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 25276b5598..23f4e3ba64 100644
--- a/library/cpp/actors/core/CMakeLists.linux-aarch64.txt
+++ b/library/cpp/actors/core/CMakeLists.linux-aarch64.txt
@@ -25,12 +25,6 @@ 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
@@ -38,6 +32,7 @@ target_link_libraries(cpp-actors-core PUBLIC
contrib-libs-cxxsupp
yutil
tools-enum_parser-enum_serialization_runtime
+ cpp-actors-actor_type
cpp-actors-memory_log
cpp-actors-prof
cpp-actors-protos
@@ -65,6 +60,7 @@ target_sources(cpp-actors-core PRIVATE
${CMAKE_SOURCE_DIR}/library/cpp/actors/core/callstack.cpp
${CMAKE_SOURCE_DIR}/library/cpp/actors/core/cpu_manager.cpp
${CMAKE_SOURCE_DIR}/library/cpp/actors/core/event.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/core/event_load.cpp
${CMAKE_SOURCE_DIR}/library/cpp/actors/core/event_pb.cpp
${CMAKE_SOURCE_DIR}/library/cpp/actors/core/events_undelivered.cpp
${CMAKE_SOURCE_DIR}/library/cpp/actors/core/executor_pool_base.cpp
@@ -74,7 +70,6 @@ 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
@@ -100,11 +95,6 @@ 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 25276b5598..23f4e3ba64 100644
--- a/library/cpp/actors/core/CMakeLists.linux-x86_64.txt
+++ b/library/cpp/actors/core/CMakeLists.linux-x86_64.txt
@@ -25,12 +25,6 @@ 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
@@ -38,6 +32,7 @@ target_link_libraries(cpp-actors-core PUBLIC
contrib-libs-cxxsupp
yutil
tools-enum_parser-enum_serialization_runtime
+ cpp-actors-actor_type
cpp-actors-memory_log
cpp-actors-prof
cpp-actors-protos
@@ -65,6 +60,7 @@ target_sources(cpp-actors-core PRIVATE
${CMAKE_SOURCE_DIR}/library/cpp/actors/core/callstack.cpp
${CMAKE_SOURCE_DIR}/library/cpp/actors/core/cpu_manager.cpp
${CMAKE_SOURCE_DIR}/library/cpp/actors/core/event.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/core/event_load.cpp
${CMAKE_SOURCE_DIR}/library/cpp/actors/core/event_pb.cpp
${CMAKE_SOURCE_DIR}/library/cpp/actors/core/events_undelivered.cpp
${CMAKE_SOURCE_DIR}/library/cpp/actors/core/executor_pool_base.cpp
@@ -74,7 +70,6 @@ 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
@@ -100,11 +95,6 @@ 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 ad0db0f571..c5c1629513 100644
--- a/library/cpp/actors/core/CMakeLists.windows-x86_64.txt
+++ b/library/cpp/actors/core/CMakeLists.windows-x86_64.txt
@@ -25,18 +25,13 @@ 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
contrib-libs-cxxsupp
yutil
tools-enum_parser-enum_serialization_runtime
+ cpp-actors-actor_type
cpp-actors-memory_log
cpp-actors-prof
cpp-actors-protos
@@ -64,6 +59,7 @@ target_sources(cpp-actors-core PRIVATE
${CMAKE_SOURCE_DIR}/library/cpp/actors/core/callstack.cpp
${CMAKE_SOURCE_DIR}/library/cpp/actors/core/cpu_manager.cpp
${CMAKE_SOURCE_DIR}/library/cpp/actors/core/event.cpp
+ ${CMAKE_SOURCE_DIR}/library/cpp/actors/core/event_load.cpp
${CMAKE_SOURCE_DIR}/library/cpp/actors/core/event_pb.cpp
${CMAKE_SOURCE_DIR}/library/cpp/actors/core/events_undelivered.cpp
${CMAKE_SOURCE_DIR}/library/cpp/actors/core/executor_pool_base.cpp
@@ -73,7 +69,6 @@ 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
@@ -99,11 +94,6 @@ 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 d80feb195d..9fbb942ed2 100644
--- a/library/cpp/actors/core/actor.h
+++ b/library/cpp/actors/core/actor.h
@@ -4,7 +4,7 @@
#include "event.h"
#include "executor_thread.h"
#include "monotonic.h"
-#include "indexes.h"
+#include <library/cpp/actors/actor_type/indexes.h>
#include <library/cpp/actors/util/local_process_key.h>
diff --git a/library/cpp/actors/core/event_load.cpp b/library/cpp/actors/core/event_load.cpp
new file mode 100644
index 0000000000..2171678bfb
--- /dev/null
+++ b/library/cpp/actors/core/event_load.cpp
@@ -0,0 +1,5 @@
+#include "event_load.h"
+
+namespace NActors {
+
+}
diff --git a/library/cpp/actors/core/executor_pool_basic.h b/library/cpp/actors/core/executor_pool_basic.h
index e58718a225..2a727fafd5 100644
--- a/library/cpp/actors/core/executor_pool_basic.h
+++ b/library/cpp/actors/core/executor_pool_basic.h
@@ -4,8 +4,8 @@
#include "executor_thread.h"
#include "scheduler_queue.h"
#include "executor_pool_base.h"
-#include "indexes.h"
#include "harmonizer.h"
+#include <library/cpp/actors/actor_type/indexes.h>
#include <library/cpp/actors/util/unordered_cache.h>
#include <library/cpp/actors/util/threadparkpad.h>
#include <library/cpp/monlib/dynamic_counters/counters.h>
diff --git a/library/cpp/actors/core/executor_pool_io.h b/library/cpp/actors/core/executor_pool_io.h
index 6b37d095ac..f3f1a11819 100644
--- a/library/cpp/actors/core/executor_pool_io.h
+++ b/library/cpp/actors/core/executor_pool_io.h
@@ -4,7 +4,7 @@
#include "executor_thread.h"
#include "scheduler_queue.h"
#include "executor_pool_base.h"
-#include "indexes.h"
+#include <library/cpp/actors/actor_type/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>
diff --git a/library/cpp/actors/core/executor_pool_united_workers.h b/library/cpp/actors/core/executor_pool_united_workers.h
index 2b96eda762..b088b582f6 100644
--- a/library/cpp/actors/core/executor_pool_united_workers.h
+++ b/library/cpp/actors/core/executor_pool_united_workers.h
@@ -2,9 +2,9 @@
#include "defs.h"
#include "balancer.h"
-#include "indexes.h"
#include "scheduler_queue.h"
+#include <library/cpp/actors/actor_type/indexes.h>
#include <library/cpp/actors/util/cpu_load_log.h>
#include <library/cpp/actors/util/datetime.h>
#include <util/generic/noncopyable.h>
diff --git a/library/cpp/actors/core/indexes.cpp b/library/cpp/actors/core/indexes.cpp
deleted file mode 100644
index e69de29bb2..0000000000
--- a/library/cpp/actors/core/indexes.cpp
+++ /dev/null
diff --git a/library/cpp/actors/core/indexes.h b/library/cpp/actors/core/indexes.h
deleted file mode 100644
index 2bac5370de..0000000000
--- a/library/cpp/actors/core/indexes.h
+++ /dev/null
@@ -1,68 +0,0 @@
-#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,
- INCORRECT_ACTOR_TYPE_INDEX,
- 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:
- static constexpr ui32 GetMaxAvailableActorsCount() {
- return TLocalProcessKeyStateIndexLimiter::GetMaxKeysCount();
- }
-
- 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);
- }
-
- static ui32 GetActorActivityIncorrectIndex() {
- return TEnumProcessKey<TActorActivityTag, EInternalActorType>::GetIndex(EInternalActorType::INCORRECT_ACTOR_TYPE_INDEX);
- }
-};
-}
diff --git a/library/cpp/actors/core/ya.make b/library/cpp/actors/core/ya.make
index 7dcfdd7c3d..649effd22f 100644
--- a/library/cpp/actors/core/ya.make
+++ b/library/cpp/actors/core/ya.make
@@ -40,7 +40,7 @@ SRCS(
defs.h
event.cpp
event.h
- event_load.h
+ event_load.cpp
event_local.h
event_pb.cpp
event_pb.h
@@ -63,7 +63,6 @@ SRCS(
interconnect.cpp
interconnect.h
invoke.h
- indexes.cpp
io_dispatcher.cpp
io_dispatcher.h
lease.h
@@ -102,10 +101,10 @@ SRCS(
GENERATE_ENUM_SERIALIZATION(defs.h)
GENERATE_ENUM_SERIALIZATION(actor.h)
-GENERATE_ENUM_SERIALIZATION(indexes.h)
GENERATE_ENUM_SERIALIZATION(log_iface.h)
PEERDIR(
+ library/cpp/actors/actor_type
library/cpp/actors/memory_log
library/cpp/actors/prof
library/cpp/actors/protos
diff --git a/library/cpp/actors/prof/tag.cpp b/library/cpp/actors/prof/tag.cpp
index 488d79e4d2..e755ed8ca9 100644
--- a/library/cpp/actors/prof/tag.cpp
+++ b/library/cpp/actors/prof/tag.cpp
@@ -15,6 +15,8 @@
#include <util/generic/string.h>
#include <util/generic/vector.h>
#include <util/system/mutex.h>
+#include <library/cpp/actors/util/local_process_key.h>
+#include <library/cpp/actors/actor_type/index_constructor.h>
namespace NProfiling {
class TStringAtoms {
@@ -118,3 +120,13 @@ namespace NProfiling {
TSetThreadAllocTag* SetThreadAllocTag = SetThreadAllocTagFn();
}
+
+TMemoryProfileGuard::TMemoryProfileGuard(const TString& id)
+ : Id(id)
+{
+ NProfiling::TMemoryTagScope::Reset(TLocalProcessKeyState<NActors::TActorActivityTag>::GetInstance().Register(Id + "-Start"));
+}
+
+TMemoryProfileGuard::~TMemoryProfileGuard() {
+ NProfiling::TMemoryTagScope::Reset(TLocalProcessKeyState<NActors::TActorActivityTag>::GetInstance().Register(Id + "-Finish"));
+}
diff --git a/library/cpp/actors/prof/tag.h b/library/cpp/actors/prof/tag.h
index 357e264a22..8549b34e35 100644
--- a/library/cpp/actors/prof/tag.h
+++ b/library/cpp/actors/prof/tag.h
@@ -1,6 +1,8 @@
#pragma once
-#include <util/generic/fwd.h>
+#include <util/generic/string.h>
+#include <util/generic/noncopyable.h>
+#include <util/generic/vector.h>
/*
Common registry for tagging memory profiler.
@@ -71,3 +73,12 @@ namespace NProfiling {
bool Released = false;
};
}
+
+class TMemoryProfileGuard: TNonCopyable {
+private:
+ const TString Id;
+public:
+ TMemoryProfileGuard(const TString& id);
+ ~TMemoryProfileGuard();
+
+};
diff --git a/library/cpp/actors/util/local_process_key.h b/library/cpp/actors/util/local_process_key.h
index 6b330751a7..077de8cddc 100644
--- a/library/cpp/actors/util/local_process_key.h
+++ b/library/cpp/actors/util/local_process_key.h
@@ -7,7 +7,6 @@
#include <util/generic/hash.h>
#include <util/generic/singleton.h>
#include <util/generic/serialized_enum.h>
-#include <library/cpp/actors/prof/tag.h>
class TLocalProcessKeyStateIndexLimiter {
public: