diff --git a/src/Arduino_Threads.h b/src/Arduino_Threads.h index 1e8b85d..6a233ed 100644 --- a/src/Arduino_Threads.h +++ b/src/Arduino_Threads.h @@ -82,12 +82,17 @@ public: \ SinkNonBlocking name{}; \ private: -#define SHARED(name, type) \ + +#define SHARED_2_ARG(name, type) \ Shared name; -#define SHARED(name, type, size) \ +#define SHARED_3_ARG(name, type, size) \ Shared name; +#define GET_SHARED_MACRO(_1,_2,_3,NAME,...) NAME +#define SHARED(...) GET_SHARED_MACRO(__VA_ARGS__, SHARED_3_ARG, SHARED_2_ARG)(__VA_ARGS__) + + #define ARDUINO_THREADS_CONCAT_(x,y) x##y #define ARDUINO_THREADS_CONCAT(x,y) ARDUINO_THREADS_CONCAT_(x,y)