aboutsummaryrefslogtreecommitdiffhomepage
path: root/tdactor
diff options
context:
space:
mode:
authorlevlam <levlam@telegram.org>2022-09-14 15:06:52 +0300
committerlevlam <levlam@telegram.org>2022-09-14 15:06:52 +0300
commit1ac2dfef30d53183ade197fdac26e05720214a39 (patch)
tree00a09c5fe485b08dd6fdba6470c9dd4fea3be32b /tdactor
parent70e3586626f8fe3edb878eb94b36abb1dafdf0cb (diff)
Replace ConcurrentScheduler::init with constructor.
Diffstat (limited to 'tdactor')
-rw-r--r--tdactor/example/example.cpp3
-rw-r--r--tdactor/td/actor/ConcurrentScheduler.cpp2
-rw-r--r--tdactor/td/actor/ConcurrentScheduler.h2
-rw-r--r--tdactor/test/actors_bugs.cpp8
-rw-r--r--tdactor/test/actors_main.cpp15
-rw-r--r--tdactor/test/actors_simple.cpp30
-rw-r--r--tdactor/test/actors_workers.cpp3
7 files changed, 21 insertions, 42 deletions
diff --git a/tdactor/example/example.cpp b/tdactor/example/example.cpp
index fb5ea6507..8f182d835 100644
--- a/tdactor/example/example.cpp
+++ b/tdactor/example/example.cpp
@@ -36,8 +36,7 @@ class MainActor final : public td::Actor {
};
int main() {
- td::ConcurrentScheduler scheduler;
- scheduler.init(4 /*thread_count*/, 0);
+ td::ConcurrentScheduler scheduler(4 /*thread_count*/, 0);
scheduler.start();
{
auto guard = scheduler.get_main_guard();
diff --git a/tdactor/td/actor/ConcurrentScheduler.cpp b/tdactor/td/actor/ConcurrentScheduler.cpp
index eb4557452..f5ffe10a2 100644
--- a/tdactor/td/actor/ConcurrentScheduler.cpp
+++ b/tdactor/td/actor/ConcurrentScheduler.cpp
@@ -15,7 +15,7 @@
namespace td {
-void ConcurrentScheduler::init(int32 additional_thread_count, uint64 thread_affinity_mask) {
+ConcurrentScheduler::ConcurrentScheduler(int32 additional_thread_count, uint64 thread_affinity_mask) {
#if TD_THREAD_UNSUPPORTED || TD_EVENTFD_UNSUPPORTED
additional_thread_count = 0;
#endif
diff --git a/tdactor/td/actor/ConcurrentScheduler.h b/tdactor/td/actor/ConcurrentScheduler.h
index f833848d2..490deb218 100644
--- a/tdactor/td/actor/ConcurrentScheduler.h
+++ b/tdactor/td/actor/ConcurrentScheduler.h
@@ -26,7 +26,7 @@ namespace td {
class ConcurrentScheduler final : private Scheduler::Callback {
public:
- void init(int32 additional_thread_count, uint64 thread_affinity_mask = 0);
+ explicit ConcurrentScheduler(int32 additional_thread_count, uint64 thread_affinity_mask = 0);
void finish_async() {
schedulers_[0]->finish();
diff --git a/tdactor/test/actors_bugs.cpp b/tdactor/test/actors_bugs.cpp
index 9f3841430..0720f0ed6 100644
--- a/tdactor/test/actors_bugs.cpp
+++ b/tdactor/test/actors_bugs.cpp
@@ -14,9 +14,7 @@
#include "td/utils/tests.h"
TEST(MultiTimeout, bug) {
- td::ConcurrentScheduler sched;
- int threads_n = 0;
- sched.init(threads_n);
+ td::ConcurrentScheduler sched(0, 0);
sched.start();
td::unique_ptr<td::MultiTimeout> multi_timeout;
@@ -91,9 +89,7 @@ class TimeoutManager final : public td::Actor {
td::int32 TimeoutManager::count;
TEST(MultiTimeout, Destroy) {
- td::ConcurrentScheduler sched;
- int threads_n = 0;
- sched.init(threads_n);
+ td::ConcurrentScheduler sched(0, 0);
auto timeout_manager = sched.create_actor_unsafe<TimeoutManager>(0, "TimeoutManager");
TimeoutManager *manager = timeout_manager.get().get_actor_unsafe();
diff --git a/tdactor/test/actors_main.cpp b/tdactor/test/actors_main.cpp
index 4bb9ac54b..628b74a94 100644
--- a/tdactor/test/actors_main.cpp
+++ b/tdactor/test/actors_main.cpp
@@ -394,9 +394,8 @@ class SendToDead final : public td::Actor {
TEST(Actors, send_to_dead) {
//TODO: fix CHECK(storage_count_.load() == 0)
return;
- td::ConcurrentScheduler sched;
int threads_n = 5;
- sched.init(threads_n);
+ td::ConcurrentScheduler sched(threads_n, 0);
sched.create_actor_unsafe<SendToDead>(0, "SendToDead").release();
sched.start();
@@ -407,9 +406,8 @@ TEST(Actors, send_to_dead) {
}
TEST(Actors, main_simple) {
- td::ConcurrentScheduler sched;
int threads_n = 3;
- sched.init(threads_n);
+ td::ConcurrentScheduler sched(threads_n, 0);
sched.create_actor_unsafe<SimpleActor>(threads_n > 1 ? 1 : 0, "simple", threads_n).release();
sched.start();
@@ -420,9 +418,8 @@ TEST(Actors, main_simple) {
}
TEST(Actors, main) {
- td::ConcurrentScheduler sched;
int threads_n = 9;
- sched.init(threads_n);
+ td::ConcurrentScheduler sched(threads_n, 0);
sched.create_actor_unsafe<MainQueryActor>(threads_n > 1 ? 1 : 0, "MainQuery", threads_n).release();
sched.start();
@@ -446,9 +443,8 @@ class DoAfterStop final : public td::Actor {
};
TEST(Actors, do_after_stop) {
- td::ConcurrentScheduler sched;
int threads_n = 0;
- sched.init(threads_n);
+ td::ConcurrentScheduler sched(threads_n, 0);
sched.create_actor_unsafe<DoAfterStop>(0, "DoAfterStop").release();
sched.start();
@@ -492,9 +488,8 @@ static void check_context() {
}
TEST(Actors, context_during_destruction) {
- td::ConcurrentScheduler sched;
int threads_n = 0;
- sched.init(threads_n);
+ td::ConcurrentScheduler sched(threads_n, 0);
{
auto guard = sched.get_main_guard();
diff --git a/tdactor/test/actors_simple.cpp b/tdactor/test/actors_simple.cpp
index 58f14ac48..78d32d543 100644
--- a/tdactor/test/actors_simple.cpp
+++ b/tdactor/test/actors_simple.cpp
@@ -256,8 +256,7 @@ TEST(Actors, simple_migrate) {
sb.clear();
sb2.clear();
- td::ConcurrentScheduler scheduler;
- scheduler.init(2);
+ td::ConcurrentScheduler scheduler(2, 0);
auto pong = scheduler.create_actor_unsafe<Pong>(2, "Pong").release();
scheduler.create_actor_unsafe<Ping>(1, "Ping", pong).release();
scheduler.start();
@@ -300,8 +299,7 @@ class OpenClose final : public td::Actor {
};
TEST(Actors, open_close) {
- td::ConcurrentScheduler scheduler;
- scheduler.init(2);
+ td::ConcurrentScheduler scheduler(2, 0);
int cnt = 10000; // TODO(perf) optimize
scheduler.create_actor_unsafe<OpenClose>(1, "A", cnt).release();
scheduler.create_actor_unsafe<OpenClose>(2, "B", cnt).release();
@@ -425,8 +423,7 @@ class LinkTokenMasterActor final : public td::Actor {
};
TEST(Actors, link_token) {
- td::ConcurrentScheduler scheduler;
- scheduler.init(0);
+ td::ConcurrentScheduler scheduler(0, 0);
auto cnt = 100000;
scheduler.create_actor_unsafe<LinkTokenMasterActor>(0, "A", cnt).release();
scheduler.start();
@@ -485,8 +482,7 @@ class LaterMasterActor final : public td::Actor {
TEST(Actors, later) {
sb.clear();
- td::ConcurrentScheduler scheduler;
- scheduler.init(0);
+ td::ConcurrentScheduler scheduler(0, 0);
scheduler.create_actor_unsafe<LaterMasterActor>(0, "A").release();
scheduler.start();
while (scheduler.run_main(10)) {
@@ -524,8 +520,7 @@ class MultiPromise1 final : public td::Actor {
};
TEST(Actors, MultiPromise) {
- td::ConcurrentScheduler scheduler;
- scheduler.init(0);
+ td::ConcurrentScheduler scheduler(0, 0);
scheduler.create_actor_unsafe<MultiPromise1>(0, "A").release();
scheduler.start();
while (scheduler.run_main(10)) {
@@ -546,8 +541,7 @@ class FastPromise final : public td::Actor {
};
TEST(Actors, FastPromise) {
- td::ConcurrentScheduler scheduler;
- scheduler.init(0);
+ td::ConcurrentScheduler scheduler(0, 0);
scheduler.create_actor_unsafe<FastPromise>(0, "A").release();
scheduler.start();
while (scheduler.run_main(10)) {
@@ -566,8 +560,7 @@ class StopInTeardown final : public td::Actor {
};
TEST(Actors, stop_in_teardown) {
- td::ConcurrentScheduler scheduler;
- scheduler.init(0);
+ td::ConcurrentScheduler scheduler(0, 0);
scheduler.create_actor_unsafe<StopInTeardown>(0, "A").release();
scheduler.start();
while (scheduler.run_main(10)) {
@@ -601,8 +594,7 @@ class AlwaysWaitForMailbox final : public td::Actor {
};
TEST(Actors, always_wait_for_mailbox) {
- td::ConcurrentScheduler scheduler;
- scheduler.init(0);
+ td::ConcurrentScheduler scheduler(0, 0);
scheduler.create_actor_unsafe<AlwaysWaitForMailbox>(0, "A").release();
scheduler.start();
while (scheduler.run_main(10)) {
@@ -612,8 +604,7 @@ TEST(Actors, always_wait_for_mailbox) {
#if !TD_THREAD_UNSUPPORTED && !TD_EVENTFD_UNSUPPORTED
TEST(Actors, send_from_other_threads) {
- td::ConcurrentScheduler scheduler;
- scheduler.init(1);
+ td::ConcurrentScheduler scheduler(1, 0);
int thread_n = 10;
class Listener final : public td::Actor {
public:
@@ -680,8 +671,7 @@ class MultiPromiseSendClosureLaterTest final : public td::Actor {
};
TEST(Actors, MultiPromiseSendClosureLater) {
- td::ConcurrentScheduler scheduler;
- scheduler.init(0);
+ td::ConcurrentScheduler scheduler(0, 0);
scheduler.create_actor_unsafe<MultiPromiseSendClosureLaterTest>(0, "MultiPromiseSendClosureLaterTest").release();
scheduler.start();
while (scheduler.run_main(1)) {
diff --git a/tdactor/test/actors_workers.cpp b/tdactor/test/actors_workers.cpp
index 748edd4e8..bac42e3fd 100644
--- a/tdactor/test/actors_workers.cpp
+++ b/tdactor/test/actors_workers.cpp
@@ -106,8 +106,7 @@ class Manager final : public td::Actor {
};
static void test_workers(int threads_n, int workers_n, int queries_n, int query_size) {
- td::ConcurrentScheduler sched;
- sched.init(threads_n);
+ td::ConcurrentScheduler sched(threads_n, 0);
td::vector<td::ActorId<PowerWorker>> workers;
for (int i = 0; i < workers_n; i++) {