Skip to content

Commit 34623d4

Browse files
committed
session server BUGFIX compilation issues
1 parent f8cd6b4 commit 34623d4

File tree

2 files changed

+13
-12
lines changed

2 files changed

+13
-12
lines changed

compat/compat.h.in

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -123,9 +123,10 @@
123123
# define ATOMIC_ADD_RELAXED(var, x) atomic_fetch_add_explicit(&(var), x, memory_order_relaxed)
124124
# define ATOMIC_DEC_RELAXED(var) atomic_fetch_sub_explicit(&(var), 1, memory_order_relaxed)
125125
# define ATOMIC_SUB_RELAXED(var, x) atomic_fetch_sub_explicit(&(var), x, memory_order_relaxed)
126-
# define ATOMIC_COMPARE_EXCHANGE_RELAXED(var, exp, des, result) \
127-
result = atomic_compare_exchange_strong_explicit(&(var), &(exp), des, memory_order_relaxed, memory_order_relaxed)
128126

127+
# define ATOMIC_PTR_COMPARE_EXCHANGE_RELAXED(var, exp, des, result) \
128+
result = atomic_compare_exchange_strong_explicit((ATOMIC_PTR_T *)&(var), &(exp), des, memory_order_relaxed, \
129+
memory_order_relaxed)
129130
# define ATOMIC_PTR_STORE_RELAXED(var, x) atomic_store_explicit(&(var), (uintptr_t)(x), memory_order_relaxed)
130131
# define ATOMIC_PTR_LOAD_RELAXED(var) ((void *)atomic_load_explicit(&(var), memory_order_relaxed))
131132
#else
@@ -144,13 +145,13 @@
144145
# define ATOMIC_ADD_RELAXED(var, x) __sync_fetch_and_add(&(var), x)
145146
# define ATOMIC_DEC_RELAXED(var) __sync_fetch_and_sub(&(var), 1)
146147
# define ATOMIC_SUB_RELAXED(var, x) __sync_fetch_and_sub(&(var), x)
147-
# define ATOMIC_COMPARE_EXCHANGE_RELAXED(var, exp, des, result) \
148+
149+
# define ATOMIC_PTR_COMPARE_EXCHANGE_RELAXED(var, exp, des, result) \
148150
{ \
149-
ATOMIC_T __old = __sync_val_compare_and_swap(&(var), exp, des); \
150-
result = ATOMIC_LOAD_RELAXED(__old) == ATOMIC_LOAD_RELAXED(exp) ? 1 : 0; \
151-
ATOMIC_STORE_RELAXED(exp, ATOMIC_LOAD_RELAXED(__old)); \
151+
uintptr_t __old = (uintptr_t)__sync_val_compare_and_swap(&(var), exp, des); \
152+
result = ATOMIC_PTR_LOAD_RELAXED(__old) == ATOMIC_PTR_LOAD_RELAXED(exp) ? 1 : 0; \
153+
ATOMIC_PTR_STORE_RELAXED(exp, ATOMIC_PTR_LOAD_RELAXED(__old)); \
152154
}
153-
154155
# define ATOMIC_PTR_STORE_RELAXED(var, x) ((var) = (x))
155156
# define ATOMIC_PTR_LOAD_RELAXED(var) (var)
156157
#endif

src/session_server.c

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1141,7 +1141,7 @@ static void
11411141
nc_server_init_cb_ctx(const struct ly_ctx *ctx)
11421142
{
11431143
struct lysc_node *rpc;
1144-
void *exp;
1144+
uintptr_t exp;
11451145
int result;
11461146

11471147
if (global_rpc_clb) {
@@ -1155,8 +1155,8 @@ nc_server_init_cb_ctx(const struct ly_ctx *ctx)
11551155
rpc = (struct lysc_node *)lys_find_path(ctx, NULL, "/ietf-netconf-monitoring:get-schema", 0);
11561156
}
11571157
if (rpc) {
1158-
exp = NULL;
1159-
ATOMIC_COMPARE_EXCHANGE_RELAXED(rpc->priv, exp, nc_clb_default_get_schema, result);
1158+
exp = 0;
1159+
ATOMIC_PTR_COMPARE_EXCHANGE_RELAXED(rpc->priv, exp, (uintptr_t)nc_clb_default_get_schema, result);
11601160

11611161
/* whatever */
11621162
(void)result;
@@ -1165,8 +1165,8 @@ nc_server_init_cb_ctx(const struct ly_ctx *ctx)
11651165
/* set default <close-session> callback if not specified */
11661166
rpc = (struct lysc_node *)lys_find_path(ctx, NULL, "/ietf-netconf:close-session", 0);
11671167
if (rpc) {
1168-
exp = NULL;
1169-
ATOMIC_COMPARE_EXCHANGE_RELAXED(rpc->priv, exp, nc_clb_default_close_session, result);
1168+
exp = 0;
1169+
ATOMIC_PTR_COMPARE_EXCHANGE_RELAXED(rpc->priv, exp, (uintptr_t)nc_clb_default_close_session, result);
11701170
(void)result;
11711171
}
11721172
}

0 commit comments

Comments
 (0)