X-Git-Url: http://git.tuebingen.mpg.de/?a=blobdiff_plain;ds=sidebyside;f=signal.h;h=643c148f3d9ec528c6a78cbf290c8c8422c25d78;hb=0c5e3f4c2f95d6a73bf840bc82dd0a1ce91e4016;hp=5df64c33f7e0a6b8a441efef82b04c355fc62a2d;hpb=9ae4e1bcaf7bdcc902b70428afa766ab332a5b23;p=paraslash.git diff --git a/signal.h b/signal.h index 5df64c33..643c148f 100644 --- a/signal.h +++ b/signal.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2007 Andre Noll + * Copyright (C) 2007 Andre Noll * * Licensed under the GPL v2. For licencing details see COPYING. */ @@ -12,14 +12,21 @@ struct signal_task { /** The signal pipe. */ int fd; - /** The number of the most recent signal. */ - int signum; /** The associated task structure. */ - struct task task; + struct task *task; }; +_static_inline_ void signal_pre_select(struct sched *s, void *context) +{ + struct signal_task *st = context; + para_fd_set(st->fd, &s->rfds, &s->max_fileno); +} + int para_signal_init(void); -int para_install_sighandler(int); -void para_reap_children(void); +void para_sigaction(int sig, void (*handler)(int)); +void para_install_sighandler(int); int para_reap_child(pid_t *pid); -int para_next_signal(void); +int para_next_signal(fd_set *rfds); +void para_signal_shutdown(void); +void para_block_signal(int sig); +void para_unblock_signal(int sig);