On Monday 28 July 2008 17:26:39 Arnaud Le Blanc wrote:
> On Sunday 27 July 2008 16:38:47 Arnaud Le Blanc wrote:
> > On Sunday 27 July 2008 16:04:58 Derick Rethans wrote:
> > > On Sun, 27 Jul 2008, Arnaud Le Blanc wrote:
> > > 
> > > > Hi,
> > > > 
> > > > I made a pcntl_signal_dispatch() function [1] to allow scripts that 
use 
> > > > signals to work without ticks.
> > > > 
> > > > This function just calls the pcntl's tick handler on-demand so that 
all 
> > signal 
> > > > handler functions are called if there are pending signals.
> > > > 
> > > > It does not allow the signal handlers to be called at any time like 
with 
> > > > ticks, but allows things like this:
> > > > 
> > > > while (do_something()) {
> > > >  /* main loop */
> > > >  pcntl_signal_dispatch();
> > > > }
> > > > 
> > > > or 
> > > > 
> > > > while (pcntl_signal_dispatch() && do_something()) {
> > > >  /* main loop */
> > > > }
> > > 
> > > Does the function block if there are no pending signals? If not, I think 
> > > we should make that an option.
> > > 
> > 
> > No, but I was thinking to implement sigwaitinfo()/sigtimedwait(), which 
> blocks 
> > indefinitly or for a given time until a signal is delivered. This also 
> > requires to implement sigprocmask().
> > 
> > It would also be great to have signalfd() (which is select()able), but 
it's 
> > Linux specific and requires quite recent Kernel and libc (that said, I'm 
> > going to implement it if there are positive feedbacks about that).
> > 
> 
> I added pcntl_sigwaitinfo(), pcntl_sigtimedwait() and pcntl_sigprocmask() to 
> my patch:
> 
> http://arnaud.lb.s3.amazonaws.com/pcntl.patch
> 
> pcntl_sigwaitinfo() allows to block until the specified signals have been 
> delivered.
> pcntl_sigtimedwait() does the same thing, but with a timeout.
> pcntl_sigprocmask() allows to block a set of signals so that they will not 
be 
> delivered between two calls of the above functions.

Lukas, Johannes, can I ? (As this is to give an alternative to a deprecated 
feature).

Regards,

Arnaud

-- 
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to