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