X-Git-Url: https://codewiz.org/gitweb?a=blobdiff_plain;f=bertos%2Fkern%2Fsignal.h;h=8821cfd9c08d07521d965bdab619e1324005468d;hb=e8b0472be10fba4ca6baa62d8d483db90e28c06e;hp=c613604134b6af8174b97f70a71fe618e42a146d;hpb=505448bf486b73df77f0fc8a3b596f35657602b5;p=bertos.git diff --git a/bertos/kern/signal.h b/bertos/kern/signal.h index c6136041..8821cfd9 100644 --- a/bertos/kern/signal.h +++ b/bertos/kern/signal.h @@ -147,12 +147,20 @@ INLINE sigmask_t sig_wait(sigmask_t sigs) return sig_waitSignal(&proc->sig, sigs); } -sigmask_t sig_waitTimeoutSignal(Signal *s, sigmask_t sigs, ticks_t timeout); +sigmask_t sig_waitTimeoutSignal(Signal *s, sigmask_t sigs, ticks_t timeout, + Hook func, iptr_t data); +/** + * Sleep until any of the signals in \a sigs or \a timeout ticks elapse. + * If the timeout elapse a SIG_TIMEOUT is added to the received signal(s). + * \return the signal(s) that have awoken the process. + * \note Caller must check return value to check which signal awoke the process. + */ INLINE sigmask_t sig_waitTimeout(sigmask_t sigs, ticks_t timeout) { Process *proc = proc_current(); - return sig_waitTimeoutSignal(&proc->sig, sigs, timeout); + return sig_waitTimeoutSignal(&proc->sig, sigs, timeout, + NULL, NULL); } #endif /* CONFIG_KERN_SIGNALS */