1
1
* clang warning stomp
* memory barrier for volatile variable use

These can go to 1.7.5 or can slip to v1.8 -- RM decision.

Submitted by Jeff Squyres, reviewed by Dave Goodell

cmr=v1.7.5:reviewer=ompi-rm1.7

This commit was SVN r30944.
Этот коммит содержится в:
Jeff Squyres 2014-03-05 21:21:53 +00:00
родитель 361f15d5d7
Коммит 554303af08
2 изменённых файлов: 7 добавлений и 0 удалений

Просмотреть файл

@ -62,6 +62,7 @@ static void client_rml_receive(int status, ompi_process_name_t* sender,
UNPACK_UINT32(buffer, cddr->udp_port);
/* Tell the main thread that the reply is done */
opal_atomic_mb();
cddr->receive_done = true;
}
@ -150,6 +151,7 @@ int ompi_btl_usnic_connectivity_listen(ompi_btl_usnic_module_t *module)
}
/* Get the UDP port number that was received */
opal_atomic_mb();
module->local_addr.connectivity_udp_port = data.udp_port;
return OMPI_SUCCESS;

Просмотреть файл

@ -157,11 +157,16 @@ struct ompi_btl_usnic_module_t;
*
* Note that this macro will call ompi_btl_usnic_util_abort() if an error
* occurs.
*
* Also note that we use a temp variable of the correct type because
* some of the values passed in to this macro are volatile, and the
* call to opal_dss.unpack() will discard that volatile qualifier.
*/
#define UNPACK(buffer, type, opal_unpack_type, value) \
do { \
int ret_value, n = 1; \
type temp; \
value = (type) 0; \
ret_value = opal_dss.unpack((buffer), &temp, &n, opal_unpack_type); \
if (OPAL_SUCCESS != ret_value) { \
OMPI_ERROR_LOG(ret_value); \