For some reason, the buffer gets trashed, so for now, let's process and then relay...until I can figure out the race condition that is causing the problem.
This commit was SVN r20665.
Этот коммит содержится в:
родитель
fd979b2278
Коммит
f0fcaf8b32
@ -297,13 +297,24 @@ void orte_daemon_cmd_processor(int fd, short event, void *data)
|
||||
}
|
||||
}
|
||||
|
||||
/* rewind the buffer to the right place for processing the cmd */
|
||||
buffer->unpack_ptr = save;
|
||||
|
||||
/* process the command */
|
||||
if (ORTE_SUCCESS != (ret = process_commands(sender, buffer, tag))) {
|
||||
OPAL_OUTPUT_VERBOSE((1, orte_debug_output,
|
||||
"%s orte:daemon:cmd:processor failed on error %s",
|
||||
ORTE_NAME_PRINT(ORTE_PROC_MY_NAME), ORTE_ERROR_NAME(ret)));
|
||||
}
|
||||
|
||||
/* rewind the buffer to the beginning */
|
||||
buffer->unpack_ptr = unpack_ptr;
|
||||
/* do the relay */
|
||||
send_relay(buffer);
|
||||
|
||||
/* rewind the buffer to the right place for processing the cmd */
|
||||
buffer->unpack_ptr = save;
|
||||
/* done */
|
||||
goto CLEANUP;
|
||||
|
||||
} else {
|
||||
/* rewind the buffer so we can process it correctly */
|
||||
buffer->unpack_ptr = unpack_ptr;
|
||||
|
Загрузка…
x
Ссылка в новой задаче
Block a user