/* vi: set sw=4 ts=4: */
-/* signalpipe.c
- *
+/*
* Signal pipe infrastructure. A reliable way of delivering signals.
*
* Russ Dill <Russ.Dill@asu.edu> December 2003
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
-
#include "common.h"
-
+/* Global variable: we access it from signal handler */
static struct fd_pair signal_pipe;
static void signal_handler(int sig)
bb_perror_msg("can't send signal");
}
-
/* Call this before doing anything else. Sets up the socket pair
* and installs the signal handler */
void FAST_FUNC udhcp_sp_setup(void)
, signal_handler);
}
-
/* Quick little function to setup the rfds. Will return the
* max_fd for use with select. Limited in that you can only pass
* one extra fd */
return signal_pipe.rd > extra_fd ? signal_pipe.rd : extra_fd;
}
-
/* Read a signal from the signal pipe. Returns 0 if there is
* no signal, -1 on error (and sets errno appropriately), and
* your signal on success */