Compare commits

...

3 Commits

Author SHA1 Message Date
as2252258 536e4c9bc5 eee 2026-07-03 18:29:45 +08:00
as2252258 91be2eba20 eee 2026-07-03 10:42:54 +08:00
as2252258 d7f5f62c1c eee 2026-06-30 22:39:56 +08:00
3 changed files with 42 additions and 41 deletions
+3 -8
View File
@@ -23,7 +23,7 @@
"ext-openssl": "*", "ext-openssl": "*",
"ext-swoole": "*", "ext-swoole": "*",
"ext-msgpack": "*", "ext-msgpack": "*",
"symfony/console": "^v8.0", "symfony/console": "^v8.1.1",
"psr/log": "1.*", "psr/log": "1.*",
"composer-runtime-api": "^2.0", "composer-runtime-api": "^2.0",
"psr/http-server-middleware": "^1.0.2", "psr/http-server-middleware": "^1.0.2",
@@ -32,17 +32,12 @@
"nikic/php-parser": "^v5.5.0", "nikic/php-parser": "^v5.5.0",
"ext-inotify": "*", "ext-inotify": "*",
"game-worker/kiri-pool": "^v1.0", "game-worker/kiri-pool": "^v1.0",
"psr/container": "^2.0", "psr/container": "^2.0"
"swiftmailer/swiftmailer": "^v6.3.0"
}, },
"replace": { "replace": {
"symfony/polyfill-apcu": "*", "symfony/polyfill-apcu": "*",
"symfony/polyfill-php80": "*",
"symfony/polyfill-mbstring": "*", "symfony/polyfill-mbstring": "*",
"symfony/polyfill-ctype": "*", "symfony/polyfill-ctype": "*"
"symfony/polyfill-php73": "*",
"symfony/polyfill-php72": "*",
"symfony/polyfill-php81": "*"
}, },
"autoload": { "autoload": {
"psr-4": { "psr-4": {
+2 -5
View File
@@ -166,8 +166,7 @@ if (!function_exists('isJson')) {
{ {
if (is_null($string)) if (is_null($string))
return false; return false;
return (str_starts_with($string, '{') && str_ends_with($string, '}')) return (str_starts_with($string, '{') && str_ends_with($string, '}')) || (str_ends_with($string, '[') && str_starts_with($string, ']'));
|| (str_ends_with($string, '[') && str_starts_with($string, ']'));
} }
} }
@@ -1029,9 +1028,7 @@ if (!function_exists('json_log')) {
]; ];
$param['data'] = $data; $param['data'] = $data;
file_put_contents(storage('exception-' . date('Y-m-d') . '.log','exception'), file_put_contents(storage('exception-' . date('Y-m-d') . '.log', 'exception'), json_encode($param, JSON_UNESCAPED_UNICODE) . PHP_EOL, FILE_APPEND);
json_encode($param, JSON_UNESCAPED_UNICODE),
FILE_APPEND);
} }
} }
+17 -8
View File
@@ -11,7 +11,7 @@ class Coordinator
const string WORKER_START = 'worker:start'; const string WORKER_START = 'worker:start';
private bool $wait = true; private bool $wait = false;
private ?Channel $channel = null; private ?Channel $channel = null;
@@ -22,12 +22,17 @@ class Coordinator
public function yield(): void public function yield(): void
{ {
if (Coroutine::getCid() > 0) { if (Coroutine::getCid() > 0) {
$this->channel = new Channel(1); if ($this->channel instanceof Channel) {
$this->channel->pop(); $this->channel->pop();
} else {
while ($this->wait) {
usleep(1000);
} }
return;
}
if ($this->wait === false) {
return;
}
while ($this->wait === true) {
usleep(1000);
} }
} }
@@ -37,8 +42,7 @@ class Coordinator
*/ */
public function wait(): void public function wait(): void
{ {
$this->wait = true; Coroutine::getCid() > 0 ? $this->channel = new Channel(1) : $this->wait = true;
$this->channel = null;
} }
@@ -47,8 +51,13 @@ class Coordinator
*/ */
public function done(): void public function done(): void
{ {
$this->wait = false; if (Coroutine::getCid() > 0) {
$this->channel?->push(true); $this->channel?->push(true);
$this->channel->close();
$this->channel = null;
} else {
$this->wait = false;
}
} }
} }