Fix issue of recursive usage of M_GLOBAL_OPLIST_OR_DEF

Update the way to use the macro to avoid being limited by the
preprocessor limitation.
This commit is contained in:
Patrick Pelissier committed 2018-09-14 20:57:55 +02:00
1 parent 8f67ca339b
commit 2e3b312fab
17 files changed
+57 -42

No files matched your search

+3 -3
View File
@@ -54,7 +54,7 @@ typedef enum {
USAGE: BUFFER_DEF(name, type, size_of_buffer_or_0, policy[, oplist]) */
#define BUFFER_DEF(name, type, m_size, ... ) \
BUFFERI_DEF(M_IF_NARGS_EQ1(__VA_ARGS__) \
((name, type, m_size,__VA_ARGS__, M_GLOBAL_OPLIST_OR_DEF(__VA_ARGS__), M_C(name,_t)), \
((name, type, m_size,__VA_ARGS__, M_GLOBAL_OPLIST_OR_DEF(__VA_ARGS__)(), M_C(name,_t)), \
(name, type, m_size,__VA_ARGS__, M_C(name,_t))))
/* Define a lock-free queue for Many Producer Many Consummer
@@ -63,7 +63,7 @@ typedef enum {
*/
#define QUEUE_MPMC_DEF(name, type, ...) \
QUEUEI_MPMC_DEF(M_IF_NARGS_EQ1(__VA_ARGS__) \
((name, type, __VA_ARGS__, M_GLOBAL_OPLIST_OR_DEF(__VA_ARGS__), M_C(name,_t)), \
((name, type, __VA_ARGS__, M_GLOBAL_OPLIST_OR_DEF(__VA_ARGS__)(), M_C(name,_t)), \
(name, type, __VA_ARGS__, M_C(name,_t))))
/* Define a wait-free queue for Single Producer Single Consummer
@@ -72,7 +72,7 @@ typedef enum {
*/
#define QUEUE_SPSC_DEF(name, type, ...) \
QUEUEI_SPSC_DEF(M_IF_NARGS_EQ1(__VA_ARGS__) \
((name, type, __VA_ARGS__, M_GLOBAL_OPLIST_OR_DEF(__VA_ARGS__), M_C(name,_t)), \
((name, type, __VA_ARGS__, M_GLOBAL_OPLIST_OR_DEF(__VA_ARGS__)(), M_C(name,_t)), \
(name, type, __VA_ARGS__, M_C(name,_t))))