From c4cf967198a63dd10ae930904d13dec88825f1d1 Mon Sep 17 00:00:00 2001 From: Daniil Gentili Date: Thu, 27 Aug 2020 18:04:55 +0200 Subject: [PATCH] Try setting signal handler before passing control to loop --- src/danog/MadelineProto/Db/Postgres.php | 5 ++--- src/danog/MadelineProto/Db/PostgresArray.php | 8 ++++---- src/danog/MadelineProto/Loop/Update/FeedLoop.php | 2 -- src/danog/MadelineProto/MTProto.php | 1 - src/danog/MadelineProto/Magic.php | 2 ++ 5 files changed, 8 insertions(+), 10 deletions(-) diff --git a/src/danog/MadelineProto/Db/Postgres.php b/src/danog/MadelineProto/Db/Postgres.php index 5bb22849..e1c4c767 100644 --- a/src/danog/MadelineProto/Db/Postgres.php +++ b/src/danog/MadelineProto/Db/Postgres.php @@ -71,8 +71,7 @@ class Postgres while (yield $result->advance()) { $row = $result->getCurrent(); - if ($row===false) - { + if ($row===false) { yield $connection->query(" CREATE DATABASE {$db} OWNER {$user} @@ -92,7 +91,7 @@ class Postgres END IF; END; $$ language 'plpgsql' - "); + "); $connection->close(); } catch (\Throwable $e) { Logger::log($e->getMessage(), Logger::ERROR); diff --git a/src/danog/MadelineProto/Db/PostgresArray.php b/src/danog/MadelineProto/Db/PostgresArray.php index a9a8cdf9..213c26ba 100644 --- a/src/danog/MadelineProto/Db/PostgresArray.php +++ b/src/danog/MadelineProto/Db/PostgresArray.php @@ -9,7 +9,6 @@ use Amp\Sql\ResultSet; use danog\MadelineProto\Logger; use function Amp\call; - class PostgresArray implements DbArray { use ArrayCacheTrait; @@ -39,7 +38,8 @@ class PostgresArray implements DbArray $this->setCache($index, $value); - $request = $this->request(" + $request = $this->request( + " INSERT INTO \"{$this->table}\" (key,value) VALUES (:index, :value) @@ -79,7 +79,7 @@ class PostgresArray implements DbArray private function prepareTable() { Logger::log("Creating/checking table {$this->table}", Logger::WARNING); - + yield $this->request(" CREATE TABLE IF NOT EXISTS \"{$this->table}\" ( @@ -381,4 +381,4 @@ class PostgresArray implements DbArray return $result; }); } -} \ No newline at end of file +} diff --git a/src/danog/MadelineProto/Loop/Update/FeedLoop.php b/src/danog/MadelineProto/Loop/Update/FeedLoop.php index 5480de95..f57302da 100644 --- a/src/danog/MadelineProto/Loop/Update/FeedLoop.php +++ b/src/danog/MadelineProto/Loop/Update/FeedLoop.php @@ -23,8 +23,6 @@ use danog\Loop\ResumableSignalLoop; use danog\MadelineProto\Loop\InternalLoop; use danog\MadelineProto\MTProto; -use function Amp\delay; - /** * Update feed loop. * diff --git a/src/danog/MadelineProto/MTProto.php b/src/danog/MadelineProto/MTProto.php index 3e6ee042..3d66e185 100644 --- a/src/danog/MadelineProto/MTProto.php +++ b/src/danog/MadelineProto/MTProto.php @@ -28,7 +28,6 @@ use danog\MadelineProto\Db\DbArray; use danog\MadelineProto\Db\DbPropertiesFabric; use danog\MadelineProto\Db\DbPropertiesTrait; use danog\MadelineProto\Db\Mysql; -use danog\MadelineProto\Db\Pgsql; use danog\MadelineProto\Ipc\Server; use danog\MadelineProto\Loop\Generic\PeriodicLoopInternal; use danog\MadelineProto\Loop\Update\FeedLoop; diff --git a/src/danog/MadelineProto/Magic.php b/src/danog/MadelineProto/Magic.php index dd274218..b0760ff5 100644 --- a/src/danog/MadelineProto/Magic.php +++ b/src/danog/MadelineProto/Magic.php @@ -262,6 +262,8 @@ class Magic if (\defined(\SIGINT::class)) { //if (function_exists('pcntl_async_signals')) pcntl_async_signals(true); try { + \pcntl_signal(SIGINT, fn () => null); + \pcntl_signal(SIGINT, SIG_DFL); Loop::unreference(Loop::onSignal(SIGINT, static function () { Logger::log('Got sigint', Logger::FATAL_ERROR); Magic::shutdown(1);