Fix issue with stricter C++ compiler with atomic definition.
(It still feels strange to not be able to store 0 in an atomic unsigned long).
This commit is contained in:
1 parent
523fc84bd6
commit
2c695526dd
3 files changed
+14
-14
No files matched your search
+9
-9
@@ -116,9 +116,9 @@ M_C(name, _init)(buffer_t v, size_t size) \
|
|||||||
assert( size > 0); \
|
assert( size > 0); \
|
||||||
BUFFERI_IF_CTE_SIZE(m_size)(assert(size == m_size), v->size = size); \
|
BUFFERI_IF_CTE_SIZE(m_size)(assert(size == m_size), v->size = size); \
|
||||||
v->idx_prod = v->idx_cons = v->overwrite = 0; \
|
v->idx_prod = v->idx_cons = v->overwrite = 0; \
|
||||||
atomic_init (&v->number[0], 0); \
|
atomic_init (&v->number[0], 0UL); \
|
||||||
if (BUFFERI_POLICY_P(policy, BUFFER_DEFERRED_POP)) \
|
if (BUFFERI_POLICY_P(policy, BUFFER_DEFERRED_POP)) \
|
||||||
atomic_init (&v->number[1], 0); \
|
atomic_init (&v->number[1], 0UL); \
|
||||||
if (!BUFFERI_POLICY_P((policy), BUFFER_THREAD_UNSAFE)) { \
|
if (!BUFFERI_POLICY_P((policy), BUFFER_THREAD_UNSAFE)) { \
|
||||||
m_mutex_init(v->mutex); \
|
m_mutex_init(v->mutex); \
|
||||||
m_cond_init(v->there_is_data); \
|
m_cond_init(v->there_is_data); \
|
||||||
@@ -156,9 +156,9 @@ M_C(name, _init)(buffer_t v, size_t size) \
|
|||||||
} \
|
} \
|
||||||
} \
|
} \
|
||||||
v->idx_prod = v->idx_cons = 0; \
|
v->idx_prod = v->idx_cons = 0; \
|
||||||
atomic_store (&v->number[0], 0); \
|
atomic_store (&v->number[0], 0UL); \
|
||||||
if (BUFFERI_POLICY_P(policy, BUFFER_DEFERRED_POP)) \
|
if (BUFFERI_POLICY_P(policy, BUFFER_DEFERRED_POP)) \
|
||||||
atomic_store(&v->number[1], 0); \
|
atomic_store(&v->number[1], 0UL); \
|
||||||
BUFFERI_CONTRACT(v,m_size); \
|
BUFFERI_CONTRACT(v,m_size); \
|
||||||
} \
|
} \
|
||||||
\
|
\
|
||||||
@@ -187,9 +187,9 @@ M_C(name, _init)(buffer_t v, size_t size) \
|
|||||||
if (BUFFERI_POLICY_P((policy), BUFFER_PUSH_INIT_POP_MOVE)) \
|
if (BUFFERI_POLICY_P((policy), BUFFER_PUSH_INIT_POP_MOVE)) \
|
||||||
M_C(name, _int_clear_obj)(v); \
|
M_C(name, _int_clear_obj)(v); \
|
||||||
v->idx_prod = v->idx_cons = 0; \
|
v->idx_prod = v->idx_cons = 0; \
|
||||||
atomic_store (&v->number[0], 0); \
|
atomic_store (&v->number[0], 0UL); \
|
||||||
if (BUFFERI_POLICY_P(policy, BUFFER_DEFERRED_POP)) \
|
if (BUFFERI_POLICY_P(policy, BUFFER_DEFERRED_POP)) \
|
||||||
atomic_store(&v->number[1], 0); \
|
atomic_store(&v->number[1], 0UL); \
|
||||||
if (!BUFFERI_POLICY_P((policy), BUFFER_THREAD_UNSAFE)) { \
|
if (!BUFFERI_POLICY_P((policy), BUFFER_THREAD_UNSAFE)) { \
|
||||||
m_cond_signal(v->there_is_room_for_data); \
|
m_cond_signal(v->there_is_room_for_data); \
|
||||||
m_mutex_unlock(v->mutex); \
|
m_mutex_unlock(v->mutex); \
|
||||||
@@ -454,8 +454,8 @@ M_C(name, _init)(buffer_t v, size_t size) \
|
|||||||
assert( M_POWEROF2_P(size)); \
|
assert( M_POWEROF2_P(size)); \
|
||||||
assert (size <= UINT_MAX); \
|
assert (size <= UINT_MAX); \
|
||||||
assert(((policy) & (BUFFER_STACK|BUFFER_THREAD_UNSAFE|BUFFER_PUSH_OVERWRITE)) == 0); \
|
assert(((policy) & (BUFFER_STACK|BUFFER_THREAD_UNSAFE|BUFFER_PUSH_OVERWRITE)) == 0); \
|
||||||
atomic_init(&buffer->ProdIdx, size); \
|
atomic_init(&buffer->ProdIdx, (unsigned long long) size); \
|
||||||
atomic_init(&buffer->ConsoIdx, size); \
|
atomic_init(&buffer->ConsoIdx, (unsigned long long) size); \
|
||||||
buffer->size = size; \
|
buffer->size = size; \
|
||||||
buffer->Tab = M_GET_REALLOC oplist (M_C(name, _el_t), NULL, size); \
|
buffer->Tab = M_GET_REALLOC oplist (M_C(name, _el_t), NULL, size); \
|
||||||
if (buffer->Tab == NULL) { \
|
if (buffer->Tab == NULL) { \
|
||||||
@@ -463,7 +463,7 @@ M_C(name, _init)(buffer_t v, size_t size) \
|
|||||||
return; \
|
return; \
|
||||||
} \
|
} \
|
||||||
for(unsigned int j = 0; j < size; j++) { \
|
for(unsigned int j = 0; j < size; j++) { \
|
||||||
atomic_init(&buffer->Tab[j].seq, 2*j+1); \
|
atomic_init(&buffer->Tab[j].seq, 2*j+1ULL); \
|
||||||
if (!BUFFERI_POLICY_P((policy), BUFFER_PUSH_INIT_POP_MOVE)) { \
|
if (!BUFFERI_POLICY_P((policy), BUFFER_PUSH_INIT_POP_MOVE)) { \
|
||||||
M_GET_INIT oplist (buffer->Tab[j].x); \
|
M_GET_INIT oplist (buffer->Tab[j].x); \
|
||||||
} \
|
} \
|
||||||
|
|||||||
+1
-1
@@ -67,7 +67,7 @@ static inline void genint_init(genint_t s, size_t n)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
for(size_t i = 0; i < alloc; i++)
|
for(size_t i = 0; i < alloc; i++)
|
||||||
atomic_init(&s->data[i], 0);
|
atomic_init(&s->data[i], 0UL);
|
||||||
GENINT_CONTRACT(s);
|
GENINT_CONTRACT(s);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+4
-4
@@ -158,8 +158,8 @@
|
|||||||
for(int i = 0; i < SNAPSHOTI_MAX_BUFFER; i++) { \
|
for(int i = 0; i < SNAPSHOTI_MAX_BUFFER; i++) { \
|
||||||
M_GET_INIT_MOVE oplist(snap->data[i], org->data[i]); \
|
M_GET_INIT_MOVE oplist(snap->data[i], org->data[i]); \
|
||||||
} \
|
} \
|
||||||
snap->flags = org->flags; \
|
atomic_store (&snap->flags, atomic_load(&org->flags)); \
|
||||||
atomic_init (&org->flags, 0); \
|
atomic_store (&org->flags, SNAPSHOTI_FLAG(0,0,0,0) ); \
|
||||||
SNAPSHOTI_CONTRACT(snap); \
|
SNAPSHOTI_CONTRACT(snap); \
|
||||||
} \
|
} \
|
||||||
,) /* IF_METHOD (INIT_MOVE) */ \
|
,) /* IF_METHOD (INIT_MOVE) */ \
|
||||||
@@ -174,8 +174,8 @@
|
|||||||
for(int i = 0; i < SNAPSHOTI_MAX_BUFFER; i++) { \
|
for(int i = 0; i < SNAPSHOTI_MAX_BUFFER; i++) { \
|
||||||
M_GET_MOVE oplist(snap->data[i], org->data[i]); \
|
M_GET_MOVE oplist(snap->data[i], org->data[i]); \
|
||||||
} \
|
} \
|
||||||
snap->flags = org->flags; \
|
atomic_store (&snap->flags, atomic_load(&org->flags)); \
|
||||||
atomic_init(&org->flags, 0); \
|
atomic_store (&org->flags, SNAPSHOTI_FLAG(0,0,0,0) ); \
|
||||||
SNAPSHOTI_CONTRACT(snap); \
|
SNAPSHOTI_CONTRACT(snap); \
|
||||||
} \
|
} \
|
||||||
,) /* IF_METHOD (MOVE) */ \
|
,) /* IF_METHOD (MOVE) */ \
|
||||||
|
|||||||
Reference in new issue
Block a user