From 8dbe544999deb24c7cd1cd370404992d33aee433 Mon Sep 17 00:00:00 2001 From: Aldo Karendra Date: Fri, 23 Dec 2022 16:17:13 +0700 Subject: [PATCH 1/2] feat: compatibility with openswoole v22.x Openswoole v22.x change `swoole_cpu_num()` to `OpenSwoole\Util::getCPUNum()` https://openswoole.com/docs/modules/swoole-server/configuration#reactor_num --- src/Swoole/SwooleExtension.php | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/Swoole/SwooleExtension.php b/src/Swoole/SwooleExtension.php index 4bc97f380..0156a491a 100644 --- a/src/Swoole/SwooleExtension.php +++ b/src/Swoole/SwooleExtension.php @@ -53,6 +53,10 @@ public function setProcessName(string $appName, string $processName): void */ public function cpuCount(): int { - return swoole_cpu_num(); + try { + return swoole_cpu_num(); + } catch (\Throwable $th) { + return extension_loaded('openswoole') ? \OpenSwoole\Util::getCPUNum() : 1; + } } } From fc2c445ee25a8a71ab280720ae69555b78bbe25d Mon Sep 17 00:00:00 2001 From: Nuno Maduro Date: Fri, 23 Dec 2022 10:31:58 +0000 Subject: [PATCH 2/2] Improves handling multiple versions of openswoole --- src/Swoole/SwooleExtension.php | 10 +++++++--- tests/SwooleExtensionTest.php | 17 +++++++++++++++++ 2 files changed, 24 insertions(+), 3 deletions(-) create mode 100644 tests/SwooleExtensionTest.php diff --git a/src/Swoole/SwooleExtension.php b/src/Swoole/SwooleExtension.php index 0156a491a..a795a4737 100644 --- a/src/Swoole/SwooleExtension.php +++ b/src/Swoole/SwooleExtension.php @@ -53,10 +53,14 @@ public function setProcessName(string $appName, string $processName): void */ public function cpuCount(): int { - try { + if (function_exists('swoole_cpu_num')) { return swoole_cpu_num(); - } catch (\Throwable $th) { - return extension_loaded('openswoole') ? \OpenSwoole\Util::getCPUNum() : 1; } + + if (class_exists(\OpenSwoole\Util::class) && method_exists(\OpenSwoole\Util::class, 'getCPUNum')) { + return \OpenSwoole\Util::getCPUNum(); + } + + return 1; } } diff --git a/tests/SwooleExtensionTest.php b/tests/SwooleExtensionTest.php new file mode 100644 index 000000000..4e4d05a61 --- /dev/null +++ b/tests/SwooleExtensionTest.php @@ -0,0 +1,17 @@ +cpuCount(); + + $this->assertTrue($cpuCount > 0); + } +}