- 3/4 commit for Windows Visual Studio and CCP support:
corrections to non-windows files (but within ifdef __WINDOWS__) type casts, event library for windows use win32. in orte runtime, add windows sockets handling and object construction. This commit was SVN r20110.
Этот коммит содержится в:
родитель
8673f19f50
Коммит
20cea164db
@ -99,7 +99,7 @@ static inline int memchecker_call (int (*f)(void *, size_t), void * addr,
|
|||||||
uint32_t stack_disp = 0, elem_pos = 0, i;
|
uint32_t stack_disp = 0, elem_pos = 0, i;
|
||||||
dt_elem_desc_t* description = datatype->opt_desc.desc;
|
dt_elem_desc_t* description = datatype->opt_desc.desc;
|
||||||
dt_elem_desc_t* pElem = &(description[elem_pos]);
|
dt_elem_desc_t* pElem = &(description[elem_pos]);
|
||||||
unsigned char *source_base = addr;
|
unsigned char *source_base = (unsigned char *) addr;
|
||||||
|
|
||||||
if ( NULL != datatype )
|
if ( NULL != datatype )
|
||||||
stack_disp = datatype->ub - datatype->lb;
|
stack_disp = datatype->ub - datatype->lb;
|
||||||
|
@ -685,7 +685,9 @@ int ompi_mpi_init(int argc, char **argv, int requested, int *provided)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Do we need to wait for a debugger? */
|
/* Do we need to wait for a debugger? */
|
||||||
|
#ifndef __WINDOWS__
|
||||||
ompi_wait_for_debugger();
|
ompi_wait_for_debugger();
|
||||||
|
#endif
|
||||||
|
|
||||||
/* check for timing request - get stop time and report elapsed
|
/* check for timing request - get stop time and report elapsed
|
||||||
time if so, then start the clock again */
|
time if so, then start the clock again */
|
||||||
|
@ -310,7 +310,11 @@ opal_event_init(void)
|
|||||||
#ifdef __APPLE__
|
#ifdef __APPLE__
|
||||||
"select",
|
"select",
|
||||||
#else
|
#else
|
||||||
|
# ifdef __WINDOWS__
|
||||||
|
"win32",
|
||||||
|
# else
|
||||||
"poll",
|
"poll",
|
||||||
|
# endif
|
||||||
#endif
|
#endif
|
||||||
&event_module_include);
|
&event_module_include);
|
||||||
free(help_msg); /* release the help message */
|
free(help_msg); /* release the help message */
|
||||||
|
@ -903,7 +903,7 @@ void orte_trigger_event(orte_trigger_event_t *trig)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
send(trig->channel, (const char *) &data, sizeof(int), 0);
|
send(trig->channel, (const char*)&data, sizeof(int), 0);
|
||||||
closesocket(trig->channel);
|
closesocket(trig->channel);
|
||||||
opal_progress();
|
opal_progress();
|
||||||
}
|
}
|
||||||
@ -1118,6 +1118,9 @@ int orte_wait_event(opal_event_t **event, orte_trigger_event_t *trig,
|
|||||||
/* create the event */
|
/* create the event */
|
||||||
*event = (opal_event_t*)malloc(sizeof(opal_event_t));
|
*event = (opal_event_t*)malloc(sizeof(opal_event_t));
|
||||||
|
|
||||||
|
/* setup the trigger and its associated lock */
|
||||||
|
OBJ_CONSTRUCT(trig, orte_trigger_event_t);
|
||||||
|
|
||||||
/* pass back the write end of the pipe */
|
/* pass back the write end of the pipe */
|
||||||
trig->channel = p[1];
|
trig->channel = p[1];
|
||||||
|
|
||||||
|
@ -782,8 +782,15 @@ static void job_completed(int trigpipe, short event, void *arg)
|
|||||||
orte_max_timeout, timeout_callback);
|
orte_max_timeout, timeout_callback);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifndef __WINDOWS__
|
||||||
/* now wait to hear it has been done */
|
/* now wait to hear it has been done */
|
||||||
opal_event_dispatch();
|
opal_event_dispatch();
|
||||||
|
#else
|
||||||
|
/* We are using WT_EXECUTEINWAITTHREAD mode of threading pool,
|
||||||
|
the other callbacks won't be triggerred until this thread finishes,
|
||||||
|
so just return to main thread and process the rest events there. */
|
||||||
|
return;
|
||||||
|
#endif
|
||||||
|
|
||||||
/* if we cannot order the daemons to terminate, then
|
/* if we cannot order the daemons to terminate, then
|
||||||
* all we can do is cleanly exit ourselves
|
* all we can do is cleanly exit ourselves
|
||||||
|
@ -257,7 +257,7 @@ int orte_list_local_hnps(opal_list_t *hnps, bool connect)
|
|||||||
* See if a contact file exists in this directory and read it
|
* See if a contact file exists in this directory and read it
|
||||||
*/
|
*/
|
||||||
contact_filename = opal_os_path( false, headdir,
|
contact_filename = opal_os_path( false, headdir,
|
||||||
dir_entry->d_name, "contact.txt", NULL );
|
file_data, "contact.txt", NULL );
|
||||||
|
|
||||||
hnp = OBJ_NEW(orte_hnp_contact_t);
|
hnp = OBJ_NEW(orte_hnp_contact_t);
|
||||||
if (ORTE_SUCCESS == (ret = orte_read_hnp_contact_file(contact_filename, hnp, connect))) {
|
if (ORTE_SUCCESS == (ret = orte_read_hnp_contact_file(contact_filename, hnp, connect))) {
|
||||||
|
Загрузка…
x
Ссылка в новой задаче
Block a user