diff --git a/td/telegram/TdDb.cpp b/td/telegram/TdDb.cpp index 75dab5a31..5b8634ea7 100644 --- a/td/telegram/TdDb.cpp +++ b/td/telegram/TdDb.cpp @@ -389,6 +389,17 @@ Status TdDb::init_sqlite(int32 scheduler_id, const TdParameters ¶meters, con } void TdDb::open(int32 scheduler_id, TdParameters parameters, DbKey key, Promise &&promise) { + if (scheduler_id >= 0 && Scheduler::instance()->sched_id() != scheduler_id) { + class Worker final : public Actor { + public: + void open(TdParameters &¶meters, DbKey &&key, Promise &&promise) { + TdDb::open(-1, std::move(parameters), std::move(key), std::move(promise)); + } + }; + send_closure(create_actor_on_scheduler("worker", scheduler_id), &Worker::open, std::move(parameters), + std::move(key), std::move(promise)); + return; + } OpenedDatabase result; // Init pmc