amphp / amp

A non-blocking concurrency framework for PHP applications. 🐘
https://amphp.org/amp
MIT License
4.25k stars 257 forks source link

32 bit PHP: Return value of Amp\Loop\NativeDriver::now() must be of the type int, float returned #413

Open flaviobattimo opened 1 year ago

flaviobattimo commented 1 year ago

Got this error:

Return value of Amp\Loop\NativeDriver::now() must be of the type int, float returned

0 vendor/amphp/amp/lib/Loop/NativeDriver.php(130): Amp\Loop\NativeDriver->now()

1 vendor/amphp/amp/lib/Loop/Driver.php(138): Amp\Loop\NativeDriver->dispatch()

2 vendor/amphp/amp/lib/Loop/Driver.php(72): Amp\Loop\Driver->tick()

3 vendor/amphp/amp/lib/Loop.php(95): Amp\Loop\Driver->run()

version: v2.6.2

PHP 7.4.30 (cli) (built: Jul 7 2022 15:51:43) ( NTS )

Thanks, Flavio

trowski commented 1 year ago

Are you running on a 32-bit install of PHP?

If so, I would have expected some warnings from https://github.com/amphp/amp/blob/c5ea79065f98f93f7b16a4d5a504fe5d69451447/lib/Internal/functions.php#L81-L85

flaviobattimo commented 1 year ago

Thanks, good to know. Yes, it's a 32bit OS running on an RPI4. It's a long running process, I will restart it regularly.

kelunik commented 1 year ago

@flaviobattimo I haven't been able to test this warning, as I don't have any 32 bit system available. Could you please check whether warnings are enabled in your error reporting settings and check the log? It'd be helpful to know the warning works as expected.

flaviobattimo commented 1 year ago

I can't find any warning in the logs, but they might be disabled. Instead of a warning, a method to check when to restart the process could be useful. But I understand 32 bit systems are almost gone.