Wow! Now I understand. Thank you for the explanation
2015-06-11 15:10 GMT+03:00 Johannes Schlüter <[email protected]>:
> As said: It looks at CPU time. sleep doesn't require CPU time. Try with
> something like while(true){} which keeps PHP on CPU
>
>
> $ cat test.php
> <?php
> echo 'php_sapi_name: '.php_sapi_name().PHP_EOL;
> echo 'max_input_time: '.ini_get('max_input_time').PHP_EOL;
> echo 'max_execution_time: '.ini_get('max_execution_time').PHP_EOL;
>
> set_time_limit(2);
>
> echo 'max_input_time: '.ini_get('max_input_time').PHP_EOL;
> echo 'max_execution_time: '.ini_get('max_execution_time').PHP_EOL;
>
> while (true) {}
>
> echo 'how it works?'.PHP_EOL;
>
> $ ./sapi/cli/php -v
> PHP 7.0.0-dev (cli) (built: Jun 11 2015 14:04:07) (DEBUG)
> Copyright (c) 1997-2015 The PHP Group
> Zend Engine v3.0.0-dev, Copyright (c) 1998-2015 Zend Technologies
>
> $ time ./sapi/cli/php test.php
> php_sapi_name: cli
> max_input_time: -1
> max_execution_time: 0
> max_input_time: -1
> max_execution_time: 2
>
> Fatal error: Maximum execution time of 2 seconds exceeded in test.php on
> line 11
>
> real 0m2.062s
> user 0m2.005s
> sys 0m0.016s
>
>
> On Thu, 2015-06-11 at 14:55 +0300, Andrew Kluev wrote:
> > It is very informative, but not resolve the problem, php completely
> > ignored my max_execution_teme setup with any SAPI, in all cases
> >
> >
> > 2015-06-11 14:42 GMT+03:00 Johannes Schlüter <[email protected]>:
> > On Thu, 2015-06-11 at 14:25 +0300, Andrew Kluev wrote:
> > > sleep(3);
> > [...]
> > > This is a bug or something I do not know about php?
> >
> > Max execution time is working a bit dependent on the operating
> > system.
> > On Windows it is using the elapsed time ("wall clock time") on
> > Linux
> > systems the CPU time. Thus on windows the sleep counts whereas
> > on Linux
> > no time is spent during sleep(). The same difference happens
> > when other
> > processes are on CPU and your PHP script was taken off CPU for
> > other
> > reasons.
> >
> > For details see MSDN on CreateTimerQueueTimer for Windows and
> > the
> > setitimer man page with (ITIMER_PROF option) for Linux/Unix
> > for a start.
> >
> >
> https://msdn.microsoft.com/en-us/library/windows/desktop/ms682485%
> > 28v=vs.85%29.aspx
> > http://linux.die.net/man/2/setitimer
> >
> >
> > johannes
> >
> >
> >
>
>
>