summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorRay Strode <rstrode@redhat.com>2007-06-06 16:32:11 -0400
committerRay Strode <rstrode@redhat.com>2007-06-06 16:32:11 -0400
commit2224329fddf5b4e9a27790090b3cd9a6680c3ebd (patch)
tree4fa6bb40377db8c9c01e28c0ba740842b25be8c0 /src
parent5b416dbb9df3f50cfc1dcd8bb72699ad0074f9ee (diff)
change the event loop test to quit after a 5 second alarm
Diffstat (limited to 'src')
-rw-r--r--src/ply-event-loop.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/ply-event-loop.c b/src/ply-event-loop.c
index cdd6c16..7aff9af 100644
--- a/src/ply-event-loop.c
+++ b/src/ply-event-loop.c
@@ -1060,6 +1060,13 @@ ply_event_loop_run (ply_event_loop_t *loop)
static ply_event_loop_t *loop;
static void
+alrm_signal_handler (void)
+{
+ write (1, "times up!\n", sizeof ("times up!\n") - 1);
+ ply_event_loop_exit (loop, 0);
+}
+
+static void
usr1_signal_handler (void)
{
write (1, "got sigusr1\n", sizeof ("got sigusr1\n") - 1);
@@ -1106,12 +1113,16 @@ main (int argc,
ply_event_loop_watch_signal (loop, SIGUSR1,
(ply_event_handler_t)
usr1_signal_handler, NULL);
+ ply_event_loop_watch_signal (loop, SIGALRM,
+ (ply_event_handler_t)
+ alrm_signal_handler, NULL);
ply_event_loop_watch_fd (loop, 0, PLY_EVENT_LOOP_FD_STATUS_HAS_DATA,
(ply_event_handler_t) line_received_handler,
(ply_event_handler_t) line_received_handler,
NULL);
+ alarm (5);
exit_code = ply_event_loop_run (loop);
ply_event_loop_free (loop);