Uh oh!
There was an error while loading. Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork 158
Closed
Labels
Description
hello,
I'm writing forking TCP server with master and forked worker processes. the ExtEventLoop instance in child process will raise some error like this:
Warning: EventBase::looPHP Warning: EventBase::loop(): kevent: Bad file descriptor in /Users/xxx/vendor/react/event-loop/src/ExtEventLoop.php on line 205 Warning: EventBase::loop(): kevent: Bad file descriptor in /Users/xxxxx/vendor/react/event-loop/src/ExtEventLoop.php on line 205 tserver/vendor/react/event-loop/src/ExtEventLoop.php on line 205 Sample code:
include__DIR__ . '/vendor/autoload.php'; $loop = \React\EventLoop\Loop::get(); $server = new \React\Socket\SocketServer('tcp://127.0.0.1:1234', [], $loop); constWORKER_NUM = 3; for ($i = 0; $i <= WORKER_NUM; $i++){$pid = pcntl_fork(); if (-1 === $pid){exit('fork error')} elseif ($pid){} else{// run the server.$loop->run(); exit} } // close in master process.$server->close(); pcntl_wait($status);environment:
php: 7.4.25 NTS os: macos 11.5.2 machine: Macbook pro(Apple M1) Reference https://stackoverflow.com/questions/33735302/reactphp-libevent-and-socket-pair-throws-error
Is it possible to add a method getEventBase() in https://github.com/reactphp/event-loop/blob/master/src/ExtEventLoop.php to expose the raw eventBase object?