[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[GNUnet-SVN] r31015 - msh/src
From: |
gnunet |
Subject: |
[GNUnet-SVN] r31015 - msh/src |
Date: |
Tue, 3 Dec 2013 15:42:32 +0100 |
Author: harsha
Date: 2013-12-03 15:42:32 +0100 (Tue, 03 Dec 2013)
New Revision: 31015
Modified:
msh/src/test_pty.c
Log:
- don't bail out when child is still running
Modified: msh/src/test_pty.c
===================================================================
--- msh/src/test_pty.c 2013-12-03 14:41:33 UTC (rev 31014)
+++ msh/src/test_pty.c 2013-12-03 14:42:32 UTC (rev 31015)
@@ -58,6 +58,10 @@
static char buf[BUF_SIZE];
static size_t buf_off;
+/**
+ * The process id of the child
+ */
+static pid_t child_pid;
/**
* Function to copy NULL terminated list of arguments
@@ -114,7 +118,16 @@
if (NULL != tx)
GNUNET_CONNECTION_notify_transmit_ready_cancel (tx);
GNUNET_CONNECTION_destroy (conn);
+ conn = NULL;
}
+ if (0 != child_pid)
+ {
+ GNUNET_break (0 == kill (child_pid, SIGTERM));
+ LOG_DEBUG ("Child still running. Delaying shutdown\n");
+ (void) GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_UNIT_FOREVER_REL,
+ &do_shutdown, NULL);
+ return;
+ }
if (GNUNET_SCHEDULER_NO_TASK != child_death_task)
{
GNUNET_SCHEDULER_cancel (child_death_task);
@@ -215,8 +228,6 @@
pr = GNUNET_DISK_pipe_handle (sigpipe, GNUNET_DISK_PIPE_END_READ);
child_death_task = GNUNET_SCHEDULER_NO_TASK;
- if (0 != (tc->reason & GNUNET_SCHEDULER_REASON_SHUTDOWN))
- return;
if (0 == (tc->reason & GNUNET_SCHEDULER_REASON_READ_READY))
{
child_death_task =
@@ -227,6 +238,7 @@
/* consume the signal */
GNUNET_break (0 < GNUNET_DISK_file_read (pr, &c, sizeof (c)));
LOG_DEBUG ("Child died\n");
+ child_pid = 0;
GNUNET_SCHEDULER_shutdown ();
/* FIXME: read any of the left over output from child? */
}
@@ -369,7 +381,8 @@
if (0 != ret)
{
LOG_DEBUG ("Forked child successfully\n");
- chld_io = GNUNET_DISK_get_handle_from_int_fd (master);
+ child_pid = ret;
+ chld_io = GNUNET_DISK_get_handle_from_int_fd (master);
read_child_task =
GNUNET_SCHEDULER_add_read_file (GNUNET_TIME_UNIT_FOREVER_REL, chld_io,
&read_child, NULL);
@@ -648,5 +661,6 @@
GNUNET_SIGNAL_handler_uninstall (shc_chld);
GNUNET_DISK_pipe_close (sigpipe);
GNUNET_free ((void *) argv);
+ LOG_DEBUG ("Exiting\n");
return ret;
}
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [GNUnet-SVN] r31015 - msh/src,
gnunet <=