X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=src%2Ftestbed%2Fgnunet_testbed_mpi_spawn.c;h=41d8054711d460b28f978d725264dcf68eb10277;hb=8a2d1e6aedbf1bc95052e63ac67093b89385b0a1;hp=01cbd6576cb5bc6975010ab009c34653567a82d2;hpb=222eabd3a982536bc7f550327bd3f90903dada38;p=oweals%2Fgnunet.git diff --git a/src/testbed/gnunet_testbed_mpi_spawn.c b/src/testbed/gnunet_testbed_mpi_spawn.c index 01cbd6576..41d805471 100644 --- a/src/testbed/gnunet_testbed_mpi_spawn.c +++ b/src/testbed/gnunet_testbed_mpi_spawn.c @@ -26,15 +26,10 @@ static int ret; static struct GNUNET_OS_Process *child; /** - * The arguments including the binary to spawn + * The arguments including the binary to spawn */ static char **argv2; -/** - * All our IP addresses - */ -static char **our_addrs; - /** * Pipe used to communicate shutdown via signal. */ @@ -60,11 +55,6 @@ static unsigned long child_exit_code; */ static enum GNUNET_OS_ProcessStatusType child_status; -/** - * how many IP addresses are currently assigned to us - */ -static unsigned int num_addrs; - /** * The shutdown task */ @@ -89,7 +79,7 @@ shutdown_task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) shutdown_task_id = GNUNET_SCHEDULER_NO_TASK; if (0 != child_exit_code) { - LOG (GNUNET_ERROR_TYPE_WARNING, "Child exited with error code: %lu\n", + LOG (GNUNET_ERROR_TYPE_WARNING, "Child exited with error code: %lu\n", child_exit_code); ret = 128 + (int) child_exit_code; } @@ -111,7 +101,7 @@ terminate_task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) static int hard_kill; GNUNET_assert (NULL != child); - terminate_task_id = + terminate_task_id = GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_UNIT_FOREVER_REL, &terminate_task, NULL); if (0 != hard_kill) @@ -120,7 +110,7 @@ terminate_task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) { case 1: case 2: - LOG (GNUNET_ERROR_TYPE_WARNING, + LOG (GNUNET_ERROR_TYPE_WARNING, "%d more interrupts needed to send SIGKILL to the child\n", 3 - hard_kill); hard_kill++; @@ -131,7 +121,7 @@ terminate_task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) } } hard_kill++; - GNUNET_break (0 == GNUNET_OS_process_kill (child, SIGTERM)); + GNUNET_break (0 == GNUNET_OS_process_kill (child, GNUNET_TERM_SIG)); LOG (GNUNET_ERROR_TYPE_INFO, _("Waiting for child to exit.\n")); } @@ -196,18 +186,11 @@ run (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) { struct GNUNET_TESTBED_Host **hosts; const struct GNUNET_CONFIGURATION_Handle *null_cfg; - const char *host_ip; char *tmpdir; char *hostname; size_t hostname_len; unsigned int nhosts; - - if (0 == num_addrs) - { - GNUNET_break (0); - ret = GNUNET_SYSERR; - return; - } + null_cfg = GNUNET_CONFIGURATION_create (); nhosts = GNUNET_TESTBED_hosts_load_from_loadleveler (null_cfg, &hosts); if (0 == nhosts) @@ -228,18 +211,19 @@ run (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) } if (NULL == strstr (GNUNET_TESTBED_host_get_hostname (hosts[0]), hostname)) { - LOG_DEBUG ("Exiting as we are not the lowest host\n"); + LOG_DEBUG ("Exiting as `%s' is not the lowest host\n", hostname); GNUNET_free (hostname); ret = GNUNET_OK; return; } + LOG_DEBUG ("Will be executing `%s' on host `%s'\n", argv2[0], hostname); GNUNET_free (hostname); destroy_hosts (hosts, nhosts); tmpdir = getenv ("TMPDIR"); if (NULL == tmpdir) tmpdir = getenv ("TMP"); if (NULL == tmpdir) - tmpdir = getenv ("TEMP"); + tmpdir = getenv ("TEMP"); if (NULL == tmpdir) tmpdir = "/tmp"; (void) GNUNET_asprintf (&fn, "%s/gnunet-testbed-spawn.lock", tmpdir); @@ -262,7 +246,7 @@ run (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) /* Spawn the new process here */ LOG (GNUNET_ERROR_TYPE_INFO, _("Spawning process `%s'\n"), argv2[0]); child = GNUNET_OS_start_process_vap (GNUNET_NO, GNUNET_OS_INHERIT_STD_ALL, NULL, - NULL, + NULL, NULL, argv2[0], argv2); if (NULL == child) { @@ -320,7 +304,7 @@ main (int argc, char *argv[]) GNUNET_break (0); return 1; } - if (NULL == (sigpipe = GNUNET_DISK_pipe (GNUNET_NO, GNUNET_NO, + if (NULL == (sigpipe = GNUNET_DISK_pipe (GNUNET_NO, GNUNET_NO, GNUNET_NO, GNUNET_NO))) { GNUNET_break (0); @@ -337,7 +321,7 @@ main (int argc, char *argv[]) argv2 = GNUNET_malloc (sizeof (char *) * argc); for (cnt = 1; cnt < argc; cnt++) argv2[cnt - 1] = argv[cnt]; - GNUNET_SCHEDULER_run (run, NULL); + GNUNET_SCHEDULER_run (run, NULL); GNUNET_free (argv2); GNUNET_SIGNAL_handler_uninstall (shc_chld); shc_chld = NULL;