aboutsummaryrefslogtreecommitdiff
path: root/src/arm
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2010-10-20 13:17:20 +0000
committerChristian Grothoff <christian@grothoff.org>2010-10-20 13:17:20 +0000
commit6a9d2a6399b00fedb0ec0b921d1e7068f0be33b1 (patch)
tree6d08fbf60a732356ec221eeb8abc8959bf12a654 /src/arm
parent086092274020d3f6c78a71dbbdd9076cf7657f79 (diff)
downloadgnunet-6a9d2a6399b00fedb0ec0b921d1e7068f0be33b1.tar.gz
gnunet-6a9d2a6399b00fedb0ec0b921d1e7068f0be33b1.zip
close pipe on exit
Diffstat (limited to 'src/arm')
-rw-r--r--src/arm/gnunet-service-arm.c22
1 files changed, 13 insertions, 9 deletions
diff --git a/src/arm/gnunet-service-arm.c b/src/arm/gnunet-service-arm.c
index adefb4269..0ebc39c8a 100644
--- a/src/arm/gnunet-service-arm.c
+++ b/src/arm/gnunet-service-arm.c
@@ -695,8 +695,6 @@ do_shutdown ()
695{ 695{
696 GNUNET_SERVER_destroy (server); 696 GNUNET_SERVER_destroy (server);
697 server = NULL; 697 server = NULL;
698 GNUNET_SIGNAL_handler_uninstall (shc_chld);
699 shc_chld = NULL;
700 GNUNET_SCHEDULER_cancel (sched, child_death_task); 698 GNUNET_SCHEDULER_cancel (sched, child_death_task);
701 child_death_task = GNUNET_SCHEDULER_NO_TASK; 699 child_death_task = GNUNET_SCHEDULER_NO_TASK;
702} 700}
@@ -1039,10 +1037,6 @@ run (void *cls,
1039 sched = s; 1037 sched = s;
1040 server = serv; 1038 server = serv;
1041 GNUNET_assert (serv != NULL); 1039 GNUNET_assert (serv != NULL);
1042 shc_chld = GNUNET_SIGNAL_handler_install (GNUNET_SIGCHLD, &sighandler_child_death);
1043 GNUNET_assert (sigpipe == NULL);
1044 sigpipe = GNUNET_DISK_pipe (GNUNET_NO, GNUNET_NO, GNUNET_NO);
1045 GNUNET_assert (sigpipe != NULL);
1046 pr = GNUNET_DISK_pipe_handle (sigpipe, GNUNET_DISK_PIPE_END_READ); 1040 pr = GNUNET_DISK_pipe_handle (sigpipe, GNUNET_DISK_PIPE_END_READ);
1047 GNUNET_assert (pr != NULL); 1041 GNUNET_assert (pr != NULL);
1048 GNUNET_SERVER_ignore_shutdown (serv, GNUNET_YES); 1042 GNUNET_SERVER_ignore_shutdown (serv, GNUNET_YES);
@@ -1119,9 +1113,19 @@ run (void *cls,
1119int 1113int
1120main (int argc, char *const *argv) 1114main (int argc, char *const *argv)
1121{ 1115{
1122 return (GNUNET_OK == 1116 int ret;
1123 GNUNET_SERVICE_run (argc, 1117
1124 argv, "arm", GNUNET_YES, &run, NULL)) ? 0 : 1; 1118 sigpipe = GNUNET_DISK_pipe (GNUNET_NO, GNUNET_NO, GNUNET_NO);
1119 GNUNET_assert (sigpipe != NULL);
1120 shc_chld = GNUNET_SIGNAL_handler_install (GNUNET_SIGCHLD, &sighandler_child_death);
1121 ret = (GNUNET_OK ==
1122 GNUNET_SERVICE_run (argc,
1123 argv, "arm", GNUNET_YES, &run, NULL)) ? 0 : 1;
1124 GNUNET_SIGNAL_handler_uninstall (shc_chld);
1125 shc_chld = NULL;
1126 GNUNET_DISK_pipe_close (sigpipe);
1127 sigpipe = NULL;
1128 return ret;
1125} 1129}
1126 1130
1127/* end of gnunet-service-arm.c */ 1131/* end of gnunet-service-arm.c */