From e072e327635b8788203c11ffe0e6d1ded6771dfb Mon Sep 17 00:00:00 2001 From: Daniil Gentili Date: Wed, 25 Jun 2025 12:44:19 +0000 Subject: [PATCH 1/3] Close connections on destruct --- src/Connection/ConnectionLimitingPool.php | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/Connection/ConnectionLimitingPool.php b/src/Connection/ConnectionLimitingPool.php index b51fd749..60be2c52 100644 --- a/src/Connection/ConnectionLimitingPool.php +++ b/src/Connection/ConnectionLimitingPool.php @@ -82,6 +82,21 @@ public function __clone() $this->openConnectionCount = 0; } + public function __destruct() + { + foreach ($this->connections as $connectionFutures) { + foreach ($connectionFutures as $connectionFuture) { + if ($connectionFuture->isComplete()) { + $connectionFuture->await()->close(); + } else { + $connectionFuture->map(function (Connection $connection): void { + $connection->close(); + }); + } + } + } + } + public function getTotalConnectionAttempts(): int { return $this->totalConnectionAttempts; From 0bc2b0b06a700c3f42464a3ab06ef56a0d2d68b7 Mon Sep 17 00:00:00 2001 From: Daniil Gentili Date: Thu, 26 Jun 2025 10:29:42 +0200 Subject: [PATCH 2/3] Fix for older php --- src/Connection/ConnectionLimitingPool.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Connection/ConnectionLimitingPool.php b/src/Connection/ConnectionLimitingPool.php index 60be2c52..3be76603 100644 --- a/src/Connection/ConnectionLimitingPool.php +++ b/src/Connection/ConnectionLimitingPool.php @@ -86,10 +86,10 @@ public function __destruct() { foreach ($this->connections as $connectionFutures) { foreach ($connectionFutures as $connectionFuture) { - if ($connectionFuture->isComplete()) { + if (PHP_VERSION_ID >= 8_04_00 && $connectionFuture->isComplete()) { $connectionFuture->await()->close(); } else { - $connectionFuture->map(function (Connection $connection): void { + $connectionFuture->map(static function (Connection $connection): void { $connection->close(); }); } From 943a5d66f9211dc3901d7bb5d18dd7cf6cc76d79 Mon Sep 17 00:00:00 2001 From: Daniil Gentili Date: Thu, 26 Jun 2025 10:34:43 +0200 Subject: [PATCH 3/3] Cleanup --- src/Connection/ConnectionLimitingPool.php | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/src/Connection/ConnectionLimitingPool.php b/src/Connection/ConnectionLimitingPool.php index 3be76603..54af3472 100644 --- a/src/Connection/ConnectionLimitingPool.php +++ b/src/Connection/ConnectionLimitingPool.php @@ -86,13 +86,9 @@ public function __destruct() { foreach ($this->connections as $connectionFutures) { foreach ($connectionFutures as $connectionFuture) { - if (PHP_VERSION_ID >= 8_04_00 && $connectionFuture->isComplete()) { - $connectionFuture->await()->close(); - } else { - $connectionFuture->map(static function (Connection $connection): void { - $connection->close(); - }); - } + $connectionFuture->map(static function (Connection $connection): void { + $connection->close(); + }); } } }