diff --git a/src/danog/MadelineProto/Loop/Connection/ReadLoop.php b/src/danog/MadelineProto/Loop/Connection/ReadLoop.php index d25b7a5f..b078cd82 100644 --- a/src/danog/MadelineProto/Loop/Connection/ReadLoop.php +++ b/src/danog/MadelineProto/Loop/Connection/ReadLoop.php @@ -99,7 +99,9 @@ class ReadLoop extends SignalLoop $connection->http_res_count++; try { + $API->logger->logger("Handling messages from DC ".$datacenter, \danog\MadelineProto\Logger::ULTRA_VERBOSE); $API->handle_messages($datacenter); + $API->logger->logger("Handled messages from DC ".$datacenter, \danog\MadelineProto\Logger::ULTRA_VERBOSE); } finally { $this->exitedLoop(); } diff --git a/src/danog/MadelineProto/MTProtoTools/ResponseHandler.php b/src/danog/MadelineProto/MTProtoTools/ResponseHandler.php index 1aed45a5..9a04f133 100644 --- a/src/danog/MadelineProto/MTProtoTools/ResponseHandler.php +++ b/src/danog/MadelineProto/MTProtoTools/ResponseHandler.php @@ -543,6 +543,8 @@ trait ResponseHandler $botAPI = isset($request['botAPI']) && $request['botAPI']; unset($request); $this->got_response_for_outgoing_message_id($request_id, $datacenter); + $r = isset($response['_']) ? $response['_'] : json_encode($response); + $this->logger->logger("Defer sending $r to deferred"); $this->callFork(( function () use ($request_id, $response, $datacenter, $botAPI) { $r = isset($response['_']) ? $response['_'] : json_encode($response); @@ -653,7 +655,7 @@ trait ResponseHandler $d = $this->update_deferred; $this->update_deferred = null; - $d->resolve(); + Loop::defer([$d, 'resolve']); } } } diff --git a/src/danog/MadelineProto/MTProtoTools/UpdateHandler.php b/src/danog/MadelineProto/MTProtoTools/UpdateHandler.php index 91a10744..626a5d87 100644 --- a/src/danog/MadelineProto/MTProtoTools/UpdateHandler.php +++ b/src/danog/MadelineProto/MTProtoTools/UpdateHandler.php @@ -22,6 +22,7 @@ namespace danog\MadelineProto\MTProtoTools; use Amp\Artax\Request; use Amp\Deferred; use Amp\Delayed; +use Amp\Loop; use function Amp\Promise\any; /** @@ -292,7 +293,7 @@ trait UpdateHandler $d = $this->update_deferred; $this->update_deferred = null; - $d->resolve(); + Loop::defer([$d, 'resolve']); } return true;