diff --git a/fdbclient/ClientKnobs.cpp b/fdbclient/ClientKnobs.cpp index e030b02392..6b3de4a53d 100644 --- a/fdbclient/ClientKnobs.cpp +++ b/fdbclient/ClientKnobs.cpp @@ -23,12 +23,8 @@ #include "fdbclient/SystemData.h" #include "flow/UnitTest.h" -#define KNOB_FN(_1, _2, _3, FN, ...) FN #define init(...) KNOB_FN(__VA_ARGS__, INIT_ATOMIC_KNOB, INIT_KNOB)(__VA_ARGS__) -#define INIT_KNOB(knob, value) initKnob(knob, value, #knob) -#define INIT_ATOMIC_KNOB(knob, value, atomic) initKnob(knob, value, #knob, atomic) - ClientKnobs::ClientKnobs(Randomize randomize) { initialize(randomize); } diff --git a/fdbclient/ServerKnobs.cpp b/fdbclient/ServerKnobs.cpp index 3478b3f39f..f7039af120 100644 --- a/fdbclient/ServerKnobs.cpp +++ b/fdbclient/ServerKnobs.cpp @@ -20,12 +20,8 @@ #include "fdbclient/ServerKnobs.h" -#define KNOB_FN(_1, _2, _3, FN, ...) FN #define init(...) KNOB_FN(__VA_ARGS__, INIT_ATOMIC_KNOB, INIT_KNOB)(__VA_ARGS__) -#define INIT_KNOB(knob, value) initKnob(knob, value, #knob) -#define INIT_ATOMIC_KNOB(knob, value, atomic) initKnob(knob, value, #knob, atomic) - ServerKnobs::ServerKnobs(Randomize randomize, ClientKnobs* clientKnobs, IsSimulated isSimulated) { initialize(randomize, clientKnobs, isSimulated); } diff --git a/flow/Knobs.cpp b/flow/Knobs.cpp index c509932770..64ce494b60 100644 --- a/flow/Knobs.cpp +++ b/flow/Knobs.cpp @@ -34,12 +34,8 @@ FlowKnobs::FlowKnobs(Randomize randomize, IsSimulated isSimulated) { FlowKnobs bootstrapGlobalFlowKnobs(Randomize::False, IsSimulated::False); FlowKnobs const* FLOW_KNOBS = &bootstrapGlobalFlowKnobs; -#define KNOB_FN(_1, _2, _3, FN, ...) FN #define init(...) KNOB_FN(__VA_ARGS__, INIT_ATOMIC_KNOB, INIT_KNOB)(__VA_ARGS__) -#define INIT_KNOB(knob, value) initKnob(knob, value, #knob) -#define INIT_ATOMIC_KNOB(knob, value, atomic) initKnob(knob, value, #knob, atomic) - // clang-format off void FlowKnobs::initialize(Randomize randomize, IsSimulated isSimulated) { init( AUTOMATIC_TRACE_DUMP, 1 ); diff --git a/flow/Knobs.h b/flow/Knobs.h index 778f1ff01e..943125863a 100644 --- a/flow/Knobs.h +++ b/flow/Knobs.h @@ -32,6 +32,12 @@ #include #include +// Helper macros to allow the init macro to be called with an optional third +// paramater, used to explicit set atomicity of knobs. +#define KNOB_FN(_1, _2, _3, FN, ...) FN +#define INIT_KNOB(knob, value) initKnob(knob, value, #knob) +#define INIT_ATOMIC_KNOB(knob, value, atomic) initKnob(knob, value, #knob, atomic) + // NOTE: Directly using KnobValueRef as the return type for Knobs::parseKnobValue would result // in a cyclic dependency, so we use this intermediate ParsedKnobValue type struct NoKnobFound {};