X-Git-Url: http://git.tuebingen.mpg.de/?p=paraslash.git;a=blobdiff_plain;f=signal.h;h=b5b06f356999062f3b9b233e8303eea33015804a;hp=822b73d8be896d2ceab63ed1b63cf089070f9f50;hb=5e8d8a8eea6de9459ebdf4498f9f061c84bfa63a;hpb=9de1287d67c9562e9140c6dc7deb0c01c4e10cc0 diff --git a/signal.h b/signal.h index 822b73d8..b5b06f35 100644 --- a/signal.h +++ b/signal.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2007-2012 Andre Noll + * Copyright (C) 2007 Andre Noll * * Licensed under the GPL v2. For licencing details see COPYING. */ @@ -13,14 +13,20 @@ struct signal_task { /** The signal pipe. */ int fd; /** The associated task structure. */ - struct task task; + struct task *task; }; -int para_signal_init(void); +_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); +} + +struct signal_task *signal_init_or_die(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(fd_set *rfds); -void para_signal_shutdown(void); +void signal_shutdown(struct signal_task *st); void para_block_signal(int sig); void para_unblock_signal(int sig);