[mpich2-commits] r3998 - in mpich2/trunk/src/pm/hydra: . bootstrap/ssh bootstrap/utils control/consys control/utils demux include launcher/mpiexec launcher/utils pm/central pm/utils utils utils/launch utils/timer
balaji at mcs.anl.gov
balaji at mcs.anl.gov
Tue Mar 10 16:18:00 CDT 2009
Author: balaji
Date: 2009-03-10 16:18:00 -0500 (Tue, 10 Mar 2009)
New Revision: 3998
Added:
mpich2/trunk/src/pm/hydra/utils/timer/
mpich2/trunk/src/pm/hydra/utils/timer/Makefile.sm
mpich2/trunk/src/pm/hydra/utils/timer/timer.c
Modified:
mpich2/trunk/src/pm/hydra/bootstrap/ssh/ssh_finalize.c
mpich2/trunk/src/pm/hydra/bootstrap/ssh/ssh_launch.c
mpich2/trunk/src/pm/hydra/bootstrap/utils/bscu_signal.c
mpich2/trunk/src/pm/hydra/bootstrap/utils/bscu_wait.c
mpich2/trunk/src/pm/hydra/configure.in
mpich2/trunk/src/pm/hydra/control/consys/consys_close.c
mpich2/trunk/src/pm/hydra/control/consys/consys_launch.c
mpich2/trunk/src/pm/hydra/control/consys/consys_wait.c
mpich2/trunk/src/pm/hydra/control/utils/csiu.c
mpich2/trunk/src/pm/hydra/control/utils/csiu.h
mpich2/trunk/src/pm/hydra/demux/demux.c
mpich2/trunk/src/pm/hydra/demux/demux.h
mpich2/trunk/src/pm/hydra/include/hydra.h
mpich2/trunk/src/pm/hydra/include/hydra_utils.h
mpich2/trunk/src/pm/hydra/launcher/mpiexec/callback.c
mpich2/trunk/src/pm/hydra/launcher/mpiexec/mpiexec.c
mpich2/trunk/src/pm/hydra/launcher/mpiexec/utils.c
mpich2/trunk/src/pm/hydra/launcher/utils/lchu.c
mpich2/trunk/src/pm/hydra/pm/central/central_launch.c
mpich2/trunk/src/pm/hydra/pm/central/proxy.c
mpich2/trunk/src/pm/hydra/pm/central/proxy_cb.c
mpich2/trunk/src/pm/hydra/pm/utils/pmi.c
mpich2/trunk/src/pm/hydra/utils/Makefile.sm
mpich2/trunk/src/pm/hydra/utils/launch/args.c
mpich2/trunk/src/pm/hydra/utils/launch/launch.c
Log:
Squashing several compile warnings in Hydra. Also made the demux engine independent of the central Hydra handle so it can be used by the proxy more cleanly.
Modified: mpich2/trunk/src/pm/hydra/bootstrap/ssh/ssh_finalize.c
===================================================================
--- mpich2/trunk/src/pm/hydra/bootstrap/ssh/ssh_finalize.c 2009-03-10 08:50:37 UTC (rev 3997)
+++ mpich2/trunk/src/pm/hydra/bootstrap/ssh/ssh_finalize.c 2009-03-10 21:18:00 UTC (rev 3998)
@@ -11,15 +11,10 @@
HYD_Status HYD_BSCI_Finalize(void)
{
- struct HYD_Proc_params *proc_params;
HYD_Status status = HYD_SUCCESS;
HYDU_FUNC_ENTER();
- fn_exit:
HYDU_FUNC_EXIT();
return status;
-
- fn_fail:
- goto fn_exit;
}
Modified: mpich2/trunk/src/pm/hydra/bootstrap/ssh/ssh_launch.c
===================================================================
--- mpich2/trunk/src/pm/hydra/bootstrap/ssh/ssh_launch.c 2009-03-10 08:50:37 UTC (rev 3997)
+++ mpich2/trunk/src/pm/hydra/bootstrap/ssh/ssh_launch.c 2009-03-10 21:18:00 UTC (rev 3998)
@@ -97,8 +97,8 @@
{
struct HYD_Proc_params *proc_params;
struct HYD_Partition_list *partition;
- char *client_arg[HYD_EXEC_ARGS], *hostname, **proc_list, *execname;
- int i, arg, host_id, host_id_max;
+ char *client_arg[HYD_EXEC_ARGS], *execname;
+ int arg;
HYD_Status status = HYD_SUCCESS;
HYDU_FUNC_ENTER();
Modified: mpich2/trunk/src/pm/hydra/bootstrap/utils/bscu_signal.c
===================================================================
--- mpich2/trunk/src/pm/hydra/bootstrap/utils/bscu_signal.c 2009-03-10 08:50:37 UTC (rev 3997)
+++ mpich2/trunk/src/pm/hydra/bootstrap/utils/bscu_signal.c 2009-03-10 21:18:00 UTC (rev 3998)
@@ -60,8 +60,6 @@
void HYD_BSCU_Signal_handler(int signal)
{
- int status, pid, i;
-
HYDU_FUNC_ENTER();
if (signal == SIGINT || signal == SIGQUIT || signal == SIGTERM
Modified: mpich2/trunk/src/pm/hydra/bootstrap/utils/bscu_wait.c
===================================================================
--- mpich2/trunk/src/pm/hydra/bootstrap/utils/bscu_wait.c 2009-03-10 08:50:37 UTC (rev 3997)
+++ mpich2/trunk/src/pm/hydra/bootstrap/utils/bscu_wait.c 2009-03-10 21:18:00 UTC (rev 3998)
@@ -19,7 +19,7 @@
*/
HYD_Status HYD_BSCU_Wait_for_completion(void)
{
- int pid, ret_status, i, not_completed;
+ int pid, ret_status, not_completed;
struct HYD_Proc_params *proc_params;
struct HYD_Partition_list *partition;
HYD_Status status = HYD_SUCCESS;
@@ -52,7 +52,7 @@
}
}
}
- if (HYD_CSU_Time_left() == 0)
+ if (HYDU_Time_left(handle.start, handle.timeout) == 0)
break;
/* FIXME: If we did not break out yet, add a small usleep to
Modified: mpich2/trunk/src/pm/hydra/configure.in
===================================================================
--- mpich2/trunk/src/pm/hydra/configure.in 2009-03-10 08:50:37 UTC (rev 3997)
+++ mpich2/trunk/src/pm/hydra/configure.in 2009-03-10 21:18:00 UTC (rev 3998)
@@ -261,6 +261,7 @@
utils/sock/Makefile \
utils/signals/Makefile \
utils/launch/Makefile \
+ utils/timer/Makefile \
launcher/Makefile \
launcher/utils/Makefile \
launcher/${HYDRA_LAUNCHER}/Makefile \
Modified: mpich2/trunk/src/pm/hydra/control/consys/consys_close.c
===================================================================
--- mpich2/trunk/src/pm/hydra/control/consys/consys_close.c 2009-03-10 08:50:37 UTC (rev 3997)
+++ mpich2/trunk/src/pm/hydra/control/consys/consys_close.c 2009-03-10 21:18:00 UTC (rev 3998)
@@ -15,7 +15,6 @@
HYD_Status HYD_CSI_Close_fd(int fd)
{
- int i;
struct HYD_Proc_params *proc_params;
struct HYD_Partition_list *partition;
HYD_Status status = HYD_SUCCESS;
Modified: mpich2/trunk/src/pm/hydra/control/consys/consys_launch.c
===================================================================
--- mpich2/trunk/src/pm/hydra/control/consys/consys_launch.c 2009-03-10 08:50:37 UTC (rev 3997)
+++ mpich2/trunk/src/pm/hydra/control/consys/consys_launch.c 2009-03-10 21:18:00 UTC (rev 3998)
@@ -16,7 +16,7 @@
{
struct HYD_Proc_params *proc_params;
struct HYD_Partition_list *partition;
- int stdin_fd, flags, count;
+ int stdin_fd;
HYD_Status status = HYD_SUCCESS;
HYDU_FUNC_ENTER();
Modified: mpich2/trunk/src/pm/hydra/control/consys/consys_wait.c
===================================================================
--- mpich2/trunk/src/pm/hydra/control/consys/consys_wait.c 2009-03-10 08:50:37 UTC (rev 3997)
+++ mpich2/trunk/src/pm/hydra/control/consys/consys_wait.c 2009-03-10 21:18:00 UTC (rev 3998)
@@ -6,6 +6,7 @@
#include "hydra.h"
#include "csi.h"
+#include "csiu.h"
#include "pmci.h"
#include "bsci.h"
#include "demux.h"
@@ -14,7 +15,7 @@
HYD_Status HYD_CSI_Wait_for_completion(void)
{
- int sockets_open, i;
+ int sockets_open;
struct HYD_Proc_params *proc_params;
struct HYD_Partition_list *partition;
HYD_Status status = HYD_SUCCESS;
@@ -23,7 +24,7 @@
while (1) {
/* Wait for some event to occur */
- status = HYD_DMX_Wait_for_event();
+ status = HYD_DMX_Wait_for_event(HYDU_Time_left(handle.start, handle.timeout));
if (status != HYD_SUCCESS) {
HYDU_Error_printf("demux engine returned error when waiting for event\n");
goto fn_fail;
@@ -43,7 +44,7 @@
break;
}
- if (sockets_open && HYD_CSU_Time_left())
+ if (sockets_open && HYDU_Time_left(handle.start, handle.timeout))
continue;
/* Make sure all the processes have terminated. The bootstrap
Modified: mpich2/trunk/src/pm/hydra/control/utils/csiu.c
===================================================================
--- mpich2/trunk/src/pm/hydra/control/utils/csiu.c 2009-03-10 08:50:37 UTC (rev 3997)
+++ mpich2/trunk/src/pm/hydra/control/utils/csiu.c 2009-03-10 21:18:00 UTC (rev 3998)
@@ -5,28 +5,3 @@
*/
#include "hydra.h"
-
-HYD_Handle handle;
-
-int HYD_CSU_Time_left(void)
-{
- struct timeval now;
- int time_left;
-
- HYDU_FUNC_ENTER();
-
- if (handle.timeout.tv_sec < 0) {
- time_left = -1;
- goto fn_exit;
- }
- else {
- gettimeofday(&now, NULL);
- time_left = (1000 * (handle.timeout.tv_sec - now.tv_sec + handle.start.tv_sec));
- if (time_left < 0)
- time_left = 0;
- }
-
- fn_exit:
- HYDU_FUNC_EXIT();
- return time_left;
-}
Modified: mpich2/trunk/src/pm/hydra/control/utils/csiu.h
===================================================================
--- mpich2/trunk/src/pm/hydra/control/utils/csiu.h 2009-03-10 08:50:37 UTC (rev 3997)
+++ mpich2/trunk/src/pm/hydra/control/utils/csiu.h 2009-03-10 21:18:00 UTC (rev 3998)
@@ -7,6 +7,4 @@
#ifndef CSIU_H_INCLUDED
#define CSIU_H_INCLUDED
-int HYD_CSU_Time_left(void);
-
#endif /* CSIU_H_INCLUDED */
Modified: mpich2/trunk/src/pm/hydra/demux/demux.c
===================================================================
--- mpich2/trunk/src/pm/hydra/demux/demux.c 2009-03-10 08:50:37 UTC (rev 3997)
+++ mpich2/trunk/src/pm/hydra/demux/demux.c 2009-03-10 21:18:00 UTC (rev 3998)
@@ -21,27 +21,6 @@
static HYD_DMXI_Callback_t *cb_list = NULL;
-static void print_callback_list()
-{
- HYD_DMXI_Callback_t *run;
- int i, j;
-
- run = cb_list;
- i = 0;
- printf("Callback list: ");
- while (run) {
- for (j = 0; j < run->num_fds; j++) {
- if (run->fd[j] == -1)
- continue;
-
- printf("%d ", run->fd[j]);
- i++;
- }
- run = run->next;
- }
- printf("\n");
-}
-
HYD_Status HYD_DMX_Register_fd(int num_fds, int *fd, HYD_Event_t events,
HYD_Status(*callback) (int fd, HYD_Event_t events))
{
@@ -122,10 +101,10 @@
}
-HYD_Status HYD_DMX_Wait_for_event(void)
+HYD_Status HYD_DMX_Wait_for_event(int time)
{
int total_fds, i, j, events, ret;
- HYD_DMXI_Callback_t *cb_element, *run;
+ HYD_DMXI_Callback_t *run;
struct pollfd *pollfds = NULL;
HYD_Status status = HYD_SUCCESS;
@@ -155,7 +134,7 @@
total_fds = i;
while (1) {
- ret = poll(pollfds, total_fds, HYD_CSU_Time_left());
+ ret = poll(pollfds, total_fds, time);
if (ret < 0) {
if (errno == EINTR) {
/* We were interrupted by a system call; loop back */
Modified: mpich2/trunk/src/pm/hydra/demux/demux.h
===================================================================
--- mpich2/trunk/src/pm/hydra/demux/demux.h 2009-03-10 08:50:37 UTC (rev 3997)
+++ mpich2/trunk/src/pm/hydra/demux/demux.h 2009-03-10 21:18:00 UTC (rev 3998)
@@ -12,7 +12,7 @@
HYD_Status HYD_DMX_Register_fd(int num_fds, int *fd, HYD_Event_t events,
HYD_Status(*callback) (int fd, HYD_Event_t events));
HYD_Status HYD_DMX_Deregister_fd(int fd);
-HYD_Status HYD_DMX_Wait_for_event(void);
+HYD_Status HYD_DMX_Wait_for_event(int time);
HYD_Status HYD_DMX_Finalize(void);
#endif /* DEMUX_H_INCLUDED */
Modified: mpich2/trunk/src/pm/hydra/include/hydra.h
===================================================================
--- mpich2/trunk/src/pm/hydra/include/hydra.h 2009-03-10 08:50:37 UTC (rev 3997)
+++ mpich2/trunk/src/pm/hydra/include/hydra.h 2009-03-10 21:18:00 UTC (rev 3998)
@@ -31,8 +31,8 @@
/* Start time and timeout. These are filled in by the launcher,
* but are utilized by the demux engine and the boot-strap server
* to decide how long we need to wait for. */
- struct timeval start;
- struct timeval timeout;
+ HYD_Time start;
+ HYD_Time timeout;
/* Each structure will contain all hosts/cores that use the same
* executable and environment. */
Modified: mpich2/trunk/src/pm/hydra/include/hydra_utils.h
===================================================================
--- mpich2/trunk/src/pm/hydra/include/hydra_utils.h 2009-03-10 08:50:37 UTC (rev 3997)
+++ mpich2/trunk/src/pm/hydra/include/hydra_utils.h 2009-03-10 21:18:00 UTC (rev 3998)
@@ -158,6 +158,16 @@
HYD_Status HYDU_Set_signal(int signum, void (*handler) (int));
+/* Timer utilities */
+/* FIXME: HYD_Time should be OS specific */
+#ifdef HAVE_TIME
+#include <time.h>
+#endif /* HAVE_TIME */
+typedef struct timeval HYD_Time;
+void HYDU_Time_set(HYD_Time time, int * val);
+int HYDU_Time_left(HYD_Time start, HYD_Time timeout);
+
+
/* Sock utilities */
#include <poll.h>
#include <fcntl.h>
Modified: mpich2/trunk/src/pm/hydra/launcher/mpiexec/callback.c
===================================================================
--- mpich2/trunk/src/pm/hydra/launcher/mpiexec/callback.c 2009-03-10 08:50:37 UTC (rev 3997)
+++ mpich2/trunk/src/pm/hydra/launcher/mpiexec/callback.c 2009-03-10 21:18:00 UTC (rev 3998)
@@ -45,8 +45,7 @@
HYD_Status HYD_LCHI_stderr_cb(int fd, HYD_Event_t events)
{
- int count, closed;
- char buf[HYD_TMPBUF_SIZE];
+ int closed;
HYD_Status status = HYD_SUCCESS;
HYDU_FUNC_ENTER();
@@ -78,7 +77,7 @@
HYD_Status HYD_LCHI_stdin_cb(int fd, HYD_Event_t events)
{
- int count, closed;
+ int closed;
HYD_Status status = HYD_SUCCESS;
HYDU_FUNC_ENTER();
Modified: mpich2/trunk/src/pm/hydra/launcher/mpiexec/mpiexec.c
===================================================================
--- mpich2/trunk/src/pm/hydra/launcher/mpiexec/mpiexec.c 2009-03-10 08:50:37 UTC (rev 3997)
+++ mpich2/trunk/src/pm/hydra/launcher/mpiexec/mpiexec.c 2009-03-10 21:18:00 UTC (rev 3998)
@@ -45,7 +45,8 @@
{
struct HYD_Proc_params *proc_params;
struct HYD_Partition_list *partition;
- int exit_status, i;
+ int exit_status;
+ int timeout;
HYD_Status status = HYD_SUCCESS;
HYDU_FUNC_ENTER();
@@ -86,13 +87,12 @@
}
handle.stdin_cb = HYD_LCHI_stdin_cb;
- gettimeofday(&handle.start, NULL);
+ HYDU_Time_set(&handle.start, NULL); /* NULL implies right now */
if (getenv("MPIEXEC_TIMEOUT"))
- handle.timeout.tv_sec = atoi(getenv("MPIEXEC_TIMEOUT"));
- else {
- handle.timeout.tv_sec = -1; /* Set a negative timeout */
- handle.timeout.tv_usec = 0;
- }
+ timeout = atoi(getenv("MPIEXEC_TIMEOUT"));
+ else
+ timeout = -1; /* Set a negative timeout */
+ HYD_Time_set(&handle.timeout, &timeout);
/* Launch the processes */
status = HYD_CSI_Launch_procs();
Modified: mpich2/trunk/src/pm/hydra/launcher/mpiexec/utils.c
===================================================================
--- mpich2/trunk/src/pm/hydra/launcher/mpiexec/utils.c 2009-03-10 08:50:37 UTC (rev 3997)
+++ mpich2/trunk/src/pm/hydra/launcher/mpiexec/utils.c 2009-03-10 21:18:00 UTC (rev 3998)
@@ -97,7 +97,6 @@
int argc = t_argc, i;
char **argv = t_argv;
int local_params_started;
- char *arg;
char *env_name, *env_value;
HYD_Env_t *env;
struct HYD_Proc_params *proc_params;
Modified: mpich2/trunk/src/pm/hydra/launcher/utils/lchu.c
===================================================================
--- mpich2/trunk/src/pm/hydra/launcher/utils/lchu.c 2009-03-10 08:50:37 UTC (rev 3997)
+++ mpich2/trunk/src/pm/hydra/launcher/utils/lchu.c 2009-03-10 21:18:00 UTC (rev 3998)
@@ -6,6 +6,7 @@
#include "hydra.h"
#include "hydra_utils.h"
+#include "lchu.h"
HYD_Handle handle;
@@ -109,8 +110,9 @@
for (partition = proc_params->partition; partition;) {
HYDU_FREE(partition->name);
if (partition->mapping) {
- if (partition->mapping[i])
- HYDU_FREE(partition->mapping[i]);
+ for (i = 0;; i++)
+ if (partition->mapping[i])
+ HYDU_FREE(partition->mapping[i]);
HYDU_FREE(partition->mapping);
}
for (i = 0; partition->args[i]; i++)
Modified: mpich2/trunk/src/pm/hydra/pm/central/central_launch.c
===================================================================
--- mpich2/trunk/src/pm/hydra/pm/central/central_launch.c 2009-03-10 08:50:37 UTC (rev 3997)
+++ mpich2/trunk/src/pm/hydra/pm/central/central_launch.c 2009-03-10 21:18:00 UTC (rev 3998)
@@ -37,14 +37,13 @@
HYD_Status HYD_PMCI_Launch_procs(void)
{
char *port_range, *port_str, *sport, *str;
- uint16_t low_port, high_port, port;
- int one = 1, i, j, arg;
- int num_procs, process_id, group_id;
+ uint16_t port;
+ int i, arg;
+ int process_id, group_id;
char hostname[MAX_HOSTNAME_LEN];
- struct sockaddr_in sa;
HYD_Env_t *env;
struct HYD_Proc_params *proc_params;
- struct HYD_Partition_list *partition, *run, *next_partition;
+ struct HYD_Partition_list *partition;
HYD_Status status = HYD_SUCCESS;
HYDU_FUNC_ENTER();
@@ -157,12 +156,12 @@
partition->args[arg++] = MPIU_Strdup(str);
HYDU_FREE(str);
- j = 0;
+ i = 0;
for (env = handle.system_env; env; env = env->next)
- j++;
+ i++;
for (env = proc_params->prop_env; env; env = env->next)
- j++;
- HYDU_Int_to_str(j, str, status);
+ i++;
+ HYDU_Int_to_str(i, str, status);
partition->args[arg++] = MPIU_Strdup("--environment");
partition->args[arg++] = MPIU_Strdup(str);
for (env = handle.system_env; env; env = env->next)
Modified: mpich2/trunk/src/pm/hydra/pm/central/proxy.c
===================================================================
--- mpich2/trunk/src/pm/hydra/pm/central/proxy.c 2009-03-10 08:50:37 UTC (rev 3997)
+++ mpich2/trunk/src/pm/hydra/pm/central/proxy.c 2009-03-10 21:18:00 UTC (rev 3998)
@@ -14,9 +14,10 @@
int main(int argc, char **argv)
{
- int i, j, arg, high_port, low_port, port, sockets_open;
- int HYD_Proxy_listenfd, stdin_fd;
- char *port_range, *port_str, *str;
+ int i, j, arg, sockets_open;
+ uint16_t port;
+ int HYD_Proxy_listenfd, stdin_fd, timeout;
+ char *port_range, *str, *timeout_str;
HYD_Env_t *env, pmi;
char *client_args[HYD_EXEC_ARGS];
HYD_Status status = HYD_SUCCESS;
@@ -147,9 +148,15 @@
}
}
+ timeout_str = getenv("MPIEXEC_TIMEOUT");
+ if (timeout_str)
+ timeout = atoi(timeout_str);
+ else
+ timeout = -1;
+
while (1) {
/* Wait for some event to occur */
- status = HYD_DMX_Wait_for_event();
+ status = HYD_DMX_Wait_for_event(timeout);
if (status != HYD_SUCCESS) {
HYDU_Error_printf("demux engine returned error when waiting for event\n");
goto fn_fail;
Modified: mpich2/trunk/src/pm/hydra/pm/central/proxy_cb.c
===================================================================
--- mpich2/trunk/src/pm/hydra/pm/central/proxy_cb.c 2009-03-10 08:50:37 UTC (rev 3997)
+++ mpich2/trunk/src/pm/hydra/pm/central/proxy_cb.c 2009-03-10 21:18:00 UTC (rev 3998)
@@ -7,6 +7,7 @@
#include "hydra.h"
#include "hydra_utils.h"
#include "proxy.h"
+#include "demux.h"
#include "central.h"
struct HYD_Proxy_params HYD_Proxy_params;
Modified: mpich2/trunk/src/pm/hydra/pm/utils/pmi.c
===================================================================
--- mpich2/trunk/src/pm/hydra/pm/utils/pmi.c 2009-03-10 08:50:37 UTC (rev 3997)
+++ mpich2/trunk/src/pm/hydra/pm/utils/pmi.c 2009-03-10 21:18:00 UTC (rev 3998)
@@ -92,7 +92,6 @@
HYD_Status HYD_PMCU_Create_pg(void)
{
- HYD_PMCU_pmi_pg_t *run;
struct HYD_Proc_params *proc_params;
int num_procs;
HYD_Status status = HYD_SUCCESS;
@@ -128,7 +127,7 @@
int id, size, debug, i;
char *ssize, *srank, *sdebug, *tmp[HYDU_NUM_JOIN_STR], *cmd;
struct HYD_Proc_params *proc_params;
- HYD_PMCU_pmi_pg_t *pg, *run;
+ HYD_PMCU_pmi_pg_t *run;
HYD_Status status = HYD_SUCCESS;
HYDU_FUNC_ENTER();
@@ -191,7 +190,7 @@
HYD_Status HYD_PMCU_pmi_init(int fd, char *args[])
{
- int pmi_version, pmi_subversion, i;
+ int pmi_version, pmi_subversion;
char *tmp[HYDU_NUM_JOIN_STR];
HYD_Status status = HYD_SUCCESS;
@@ -275,7 +274,7 @@
static HYD_PMCU_pmi_process_t *find_process(int fd)
{
HYD_PMCU_pmi_pg_t *pg;
- HYD_PMCU_pmi_process_t *process;
+ HYD_PMCU_pmi_process_t *process = NULL;
pg = pg_list;
while (pg) {
@@ -381,7 +380,6 @@
{
HYD_PMCU_pmi_process_t *process, *run;
char *cmd;
- int i;
HYD_Status status = HYD_SUCCESS;
HYDU_FUNC_ENTER();
Modified: mpich2/trunk/src/pm/hydra/utils/Makefile.sm
===================================================================
--- mpich2/trunk/src/pm/hydra/utils/Makefile.sm 2009-03-10 08:50:37 UTC (rev 3997)
+++ mpich2/trunk/src/pm/hydra/utils/Makefile.sm 2009-03-10 21:18:00 UTC (rev 3998)
@@ -4,4 +4,4 @@
# See COPYRIGHT in top-level directory.
#
-SUBDIRS = dbg env sock signals launch .
+SUBDIRS = dbg env sock signals launch timer .
Modified: mpich2/trunk/src/pm/hydra/utils/launch/args.c
===================================================================
--- mpich2/trunk/src/pm/hydra/utils/launch/args.c 2009-03-10 08:50:37 UTC (rev 3997)
+++ mpich2/trunk/src/pm/hydra/utils/launch/args.c 2009-03-10 21:18:00 UTC (rev 3998)
@@ -8,9 +8,9 @@
HYD_Status HYDU_Append_env(HYD_Env_t * env_list, char **client_arg, int id)
{
- int i, j, csh_format;
+ int i, j;
HYD_Env_t *env;
- char *envstr, *tmp[HYDU_NUM_JOIN_STR], *inc;
+ char *envstr, *tmp[HYDU_NUM_JOIN_STR];
HYD_Status status = HYD_SUCCESS;
HYDU_FUNC_ENTER();
Modified: mpich2/trunk/src/pm/hydra/utils/launch/launch.c
===================================================================
--- mpich2/trunk/src/pm/hydra/utils/launch/launch.c 2009-03-10 08:50:37 UTC (rev 3997)
+++ mpich2/trunk/src/pm/hydra/utils/launch/launch.c 2009-03-10 21:18:00 UTC (rev 3998)
@@ -8,7 +8,7 @@
HYD_Status HYDU_Create_process(char **client_arg, int *in, int *out, int *err, int *pid)
{
- int inpipe[2], outpipe[2], errpipe[2], arg, tpid;
+ int inpipe[2], outpipe[2], errpipe[2], tpid;
HYD_Status status = HYD_SUCCESS;
HYDU_FUNC_ENTER();
Property changes on: mpich2/trunk/src/pm/hydra/utils/timer
___________________________________________________________________
Name: svn:ignore
+ Makefile
Makefile.in
Added: mpich2/trunk/src/pm/hydra/utils/timer/Makefile.sm
===================================================================
--- mpich2/trunk/src/pm/hydra/utils/timer/Makefile.sm (rev 0)
+++ mpich2/trunk/src/pm/hydra/utils/timer/Makefile.sm 2009-03-10 21:18:00 UTC (rev 3998)
@@ -0,0 +1,14 @@
+# -*- Mode: Makefile; -*-
+#
+# (C) 2008 by Argonne National Laboratory.
+# See COPYRIGHT in top-level directory.
+#
+
+HYDRA_LIB_PATH = ../../lib
+
+libhydra_a_DIR = ${HYDRA_LIB_PATH}
+libhydra_a_SOURCES = timer.c
+INCLUDES = -I${abs_srcdir}/../../include \
+ -I${abs_srcdir}/../../../../include \
+ -I../../include \
+ -I../../../../include
Added: mpich2/trunk/src/pm/hydra/utils/timer/timer.c
===================================================================
--- mpich2/trunk/src/pm/hydra/utils/timer/timer.c (rev 0)
+++ mpich2/trunk/src/pm/hydra/utils/timer/timer.c 2009-03-10 21:18:00 UTC (rev 3998)
@@ -0,0 +1,46 @@
+/* -*- Mode: C; c-basic-offset:4 ; -*- */
+/*
+ * (C) 2008 by Argonne National Laboratory.
+ * See COPYRIGHT in top-level directory.
+ */
+
+#include "hydra_utils.h"
+
+/* FIXME: Here we assume that the timer is gettimeofday. */
+
+void HYDU_Time_set(HYD_Time time, int * val)
+{
+ if (val == NULL) {
+ /* Set time to right now */
+ gettimeofday(&time, NULL);
+ }
+ else {
+ time.tv_sec = *val;
+ time.tv_usec = 0;
+ }
+}
+
+int HYDU_Time_left(HYD_Time start, HYD_Time timeout)
+{
+ HYD_Time now;
+ int time_left;
+
+ HYDU_FUNC_ENTER();
+
+ if (timeout.tv_sec < 0) {
+ time_left = -1;
+ goto fn_exit;
+ }
+ else {
+ gettimeofday(&now, NULL);
+ if (timeout.tv_sec > (now.tv_sec - start.tv_sec)) {
+ time_left = (1000 * (timeout.tv_sec - now.tv_sec + start.tv_sec));
+ }
+ else
+ time_left = 0;
+ }
+
+fn_exit:
+ HYDU_FUNC_EXIT();
+ return time_left;
+}
More information about the mpich2-commits
mailing list