You mean the shutdown function is called and 1 nanosecond later PHP crashes
so you don't have time to do anything?

~Hannes

On 9 March 2011 15:27, David Muir <davidkm...@gmail.com> wrote:

> Hmm, I think I worded that poorly.
> A function registered with register_shutdown_function does execute when
> the max_execution_time is exceeded.
> What it doesn't let you do is to recover in the same way an error
> handler would let you.
>
> David
>
> On 09/03/11 22:56, Hannes Landeholm wrote:
> > I second making time limit reached catchable. All non catchable fatal
> errors
> > are a problem for me. I need to handle problems gracefully to ensure the
> > stability of production systems instead of PHP just killing itself
> without
> > warning. I just reported a similar issue:
> > http://bugs.php.net/bug.php?id=54195
> >
> > A simple way to implement this would be to register a function that would
> be
> > called N seconds before the script would timeout.
> >
> > register_timeout_handler(2, function() { die("PHP timed out."); });
> >
> > It would be called just as a shutdown function - in fact I'd like to use
> the
> > same function as my shutdown function and get the error with
> > error_get_last(). Of course set_time_limit(0) could be used in this
> function
> > to prevent the timeout of the timeout handler. This does not "prevent"
> > timeout since set_time_limit could have been called by the script before
> the
> > timeout anyway.
> >
> > On that note I also miss a function which returns the time the script can
> > keep running for. If that calculate needs to be calculated to implemented
> to
> > implement this, why not make the value available to the PHP script?
> >
> > ~Hannes
> >
> > On 9 March 2011 02:30, David Muir <davidkm...@gmail.com> wrote:
> >
> >> Although it doesn't let you recover from a timeout, you could use
> >> register_shutdown_function to gracefully exit after a fatal error.
> >>
> >> register_shutdown_function(function(){
> >>    $error = error_get_last();
> >>    if($error && $error['type'] === E_ERROR){
> >>        echo 'PHAIL! Oh noes, something went wrong!';
> >>        // do whatever else you need to do before quitting
> >>    }
> >> });
> >>
> >> Cheers,
> >> David
> >>
> >> On 08/03/11 22:39, Pierre Joye wrote:
> >>> hi,
> >>>
> >>> is not the goal of this setting to prevent that a script runs longer
> >>> than a given time? A catchable error will prevent that to happen.
> >>>
> >>> On Tue, Mar 8, 2011 at 2:05 PM, Sebastian Bergmann <sebast...@php.net>
> >> wrote:
> >>>>  Could set_time_limit() be changed in such a way that it triggers a
> >>>>  catchable fatal error instead of a fatal error? Thanks!
> >>>>
> >>>> --
> >>>> Sebastian Bergmann                    Co-Founder and Principal
> >> Consultant
> >>>> http://sebastian-bergmann.de/
> >> http://thePHP.cc/
> >>>> --
> >>>> PHP Internals - PHP Runtime Development Mailing List
> >>>> To unsubscribe, visit: http://www.php.net/unsub.php
> >>>>
> >>>>
> >>>
> >>
> >> --
> >> PHP Internals - PHP Runtime Development Mailing List
> >> To unsubscribe, visit: http://www.php.net/unsub.php
> >>
> >>
>
>
> --
> PHP Internals - PHP Runtime Development Mailing List
> To unsubscribe, visit: http://www.php.net/unsub.php
>
>

Reply via email to