Skip to content

Commit 95c4406

Browse files
committed
OSHMEM: shmem_wait code cleanup
* updating naming convention for the arguments in order to ensure that the name aligns with an actual meaning of the argument * remove local variable references in the macro * adding volatile for the poll variables Signed-off-by: Pavel Shamis (Pasha) <[email protected]>
1 parent 60ca372 commit 95c4406

File tree

1 file changed

+31
-19
lines changed

1 file changed

+31
-19
lines changed

oshmem/mca/spml/base/spml_base.c

Lines changed: 31 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
/*
22
* Copyright (c) 2013 Mellanox Technologies, Inc.
33
* All rights reserved.
4+
* Copyright (c) 2017 ARM, Inc. All rights reserved.
45
* $COPYRIGHT$
56
*
67
* Additional copyrights may follow
@@ -20,49 +21,60 @@
2021
#include "oshmem/mca/spml/yoda/spml_yoda_getreq.h"
2122
#include "opal/mca/btl/btl.h"
2223

23-
#define SPML_BASE_DO_CMP(res, addr, op, val) \
24-
switch((op)) { \
24+
#define SPML_BASE_DO_CMP(_res, _addr, _op, _val) \
25+
switch((_op)) { \
2526
case SHMEM_CMP_EQ: \
26-
res = *(addr) == (val) ? 1 : 0; \
27+
_res = *(_addr) == (_val) ? 1 : 0; \
2728
break; \
2829
case SHMEM_CMP_NE: \
29-
res = *(addr) != (val) ? 1 : 0; \
30+
_res = *(_addr) != (_val) ? 1 : 0; \
3031
break; \
3132
case SHMEM_CMP_GT: \
32-
res = *(addr) > (val) ? 1 : 0; \
33+
_res = *(_addr) > (_val) ? 1 : 0; \
3334
break; \
3435
case SHMEM_CMP_LE: \
35-
res = *(addr) <= (val) ? 1 : 0; \
36+
_res = *(_addr) <= (_val) ? 1 : 0; \
3637
break; \
3738
case SHMEM_CMP_LT: \
38-
res = *(addr) < (val) ? 1: 0; \
39+
_res = *(_addr) < (_val) ? 1 : 0; \
3940
break; \
4041
case SHMEM_CMP_GE: \
41-
res = *(addr) >= (val) ? 1 : 0; \
42+
_res = *(_addr) >= (_val) ? 1 : 0; \
4243
break; \
4344
}
4445

45-
#define SPML_BASE_DO_WAIT(cond, val, addr, op) \
46-
do { \
47-
SPML_BASE_DO_CMP(cond, val,addr,op); \
48-
opal_progress(); \
49-
} while (cond == 0) ;
46+
#define SPML_BASE_DO_WAIT(_res, _addr, _op, _val) \
47+
do { \
48+
SPML_BASE_DO_CMP(_res, _addr, _op, _val); \
49+
if (_res == 0) { \
50+
opal_progress(); \
51+
} \
52+
} while (_res == 0);
5053

5154
/**
5255
* Wait for data delivery.
5356
* Pool on a variable given in addr until it is not equal to value.
5457
*/
5558
int mca_spml_base_wait(void* addr, int cmp, void* value, int datatype)
5659
{
57-
int *int_addr, int_value;
58-
long *long_addr, long_value;
59-
short *short_addr, short_value;
60-
long long *longlong_addr, longlong_value;
61-
int32_t *int32_addr, int32_value;
62-
int64_t *int64_addr, int64_value;
60+
volatile int *int_addr;
61+
volatile long *long_addr;
62+
volatile short *short_addr;
63+
volatile long long *longlong_addr;
64+
volatile int32_t *int32_addr;
65+
volatile int64_t *int64_addr;
66+
67+
int int_value;
68+
long long_value;
69+
short short_value;
70+
long long longlong_value;
71+
int32_t int32_value;
72+
int64_t int64_value;
73+
6374
ompi_fortran_integer_t *fint_addr, fint_value;
6475
ompi_fortran_integer4_t *fint4_addr, fint4_value;
6576
ompi_fortran_integer8_t *fint8_addr, fint8_value;
77+
6678
int res = 0;
6779

6880
switch (datatype) {

0 commit comments

Comments
 (0)