Don't initialize proctable more than once (since the stage gate 1 trigger
seems to get fired at least twice). This commit was SVN r7101.
Этот коммит содержится в:
родитель
dc0f3eef63
Коммит
995641c1e6
@ -87,6 +87,12 @@ bool ompi_mpi_maffinity_setup = false;
|
|||||||
int MPIR_being_debugged = 0;
|
int MPIR_being_debugged = 0;
|
||||||
volatile int MPIR_debug_gate = 0;
|
volatile int MPIR_debug_gate = 0;
|
||||||
volatile int MPIR_debug_state = 0;
|
volatile int MPIR_debug_state = 0;
|
||||||
|
struct MPIR_PROCDESC {
|
||||||
|
char *host_name; /* something that can be passed to inet_addr */
|
||||||
|
char *executable_name; /* name of binary */
|
||||||
|
int pid; /* process pid */
|
||||||
|
};
|
||||||
|
struct MPIR_PROCDESC *MPIR_proctable = NULL;
|
||||||
|
|
||||||
|
|
||||||
int ompi_mpi_init(int argc, char **argv, int requested, int *provided)
|
int ompi_mpi_init(int argc, char **argv, int requested, int *provided)
|
||||||
|
@ -55,9 +55,8 @@ struct MPIR_PROCDESC {
|
|||||||
char *executable_name; /* name of binary */
|
char *executable_name; /* name of binary */
|
||||||
int pid; /* process pid */
|
int pid; /* process pid */
|
||||||
};
|
};
|
||||||
typedef struct MPIR_PROCDESC MPIR_PROCDESC;
|
|
||||||
|
|
||||||
MPIR_PROCDESC *MPIR_proctable = NULL;
|
struct MPIR_PROCDESC *MPIR_proctable = NULL;
|
||||||
int MPIR_proctable_size = 0;
|
int MPIR_proctable_size = 0;
|
||||||
int MPIR_being_debugged = 0;
|
int MPIR_being_debugged = 0;
|
||||||
int MPIR_force_to_main = 0;
|
int MPIR_force_to_main = 0;
|
||||||
@ -65,7 +64,6 @@ volatile int MPIR_debug_state = 0;
|
|||||||
volatile int MPIR_i_am_starter = 0;
|
volatile int MPIR_i_am_starter = 0;
|
||||||
volatile int MPIR_debug_gate = 0;
|
volatile int MPIR_debug_gate = 0;
|
||||||
volatile int MPIR_acquired_pre_main = 0;
|
volatile int MPIR_acquired_pre_main = 0;
|
||||||
volatile int debugger_dummy = 0;
|
|
||||||
|
|
||||||
void *MPIR_Breakpoint(void);
|
void *MPIR_Breakpoint(void);
|
||||||
|
|
||||||
@ -120,7 +118,7 @@ static void dump(void)
|
|||||||
*/
|
*/
|
||||||
void orte_totalview_init_before_spawn(void)
|
void orte_totalview_init_before_spawn(void)
|
||||||
{
|
{
|
||||||
if (MPIR_DEBUG_SPAWNED == MPIR_debug_state) {
|
if (MPIR_DEBUG_SPAWNED == MPIR_being_debugged) {
|
||||||
|
|
||||||
int value;
|
int value;
|
||||||
char *s;
|
char *s;
|
||||||
@ -161,6 +159,11 @@ void orte_totalview_init_after_spawn(orte_jobid_t jobid)
|
|||||||
int i;
|
int i;
|
||||||
int rc;
|
int rc;
|
||||||
|
|
||||||
|
if (MPIR_proctable) {
|
||||||
|
/* already initialized */
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (0) { /* debugging daemons <<-- needs work */
|
if (0) { /* debugging daemons <<-- needs work */
|
||||||
|
|
||||||
if (orte_debug_flag) {
|
if (orte_debug_flag) {
|
||||||
@ -180,6 +183,8 @@ void orte_totalview_init_after_spawn(orte_jobid_t jobid)
|
|||||||
opal_output(0, "Info: Setting up debugger process table for applications\n");
|
opal_output(0, "Info: Setting up debugger process table for applications\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
MPIR_debug_state = 1;
|
||||||
|
|
||||||
OBJ_CONSTRUCT(&list_of_resource_maps, opal_list_t);
|
OBJ_CONSTRUCT(&list_of_resource_maps, opal_list_t);
|
||||||
|
|
||||||
/* Get a list of the resource maps for this job */
|
/* Get a list of the resource maps for this job */
|
||||||
@ -201,7 +206,7 @@ void orte_totalview_init_after_spawn(orte_jobid_t jobid)
|
|||||||
|
|
||||||
/* allocate MPIR_proctable */
|
/* allocate MPIR_proctable */
|
||||||
|
|
||||||
MPIR_proctable = (MPIR_PROCDESC *) malloc(sizeof(MPIR_PROCDESC) *
|
MPIR_proctable = (struct MPIR_PROCDESC *) malloc(sizeof(struct MPIR_PROCDESC) *
|
||||||
MPIR_proctable_size);
|
MPIR_proctable_size);
|
||||||
if (MPIR_proctable == NULL) {
|
if (MPIR_proctable == NULL) {
|
||||||
opal_output(0, "Error: Out of memory\n");
|
opal_output(0, "Error: Out of memory\n");
|
||||||
|
Загрузка…
x
Ссылка в новой задаче
Block a user