From 713b80f440cb414cd0b856bde0ea1b31f939777f Mon Sep 17 00:00:00 2001 From: Garrett D'Amore Date: Sat, 9 Nov 2024 23:45:21 -0800 Subject: refactor initialization/finalization Applications must now call nng_init(), but they can supply a set of parameters optionally. The code is now safe for multiple libraries to do this concurrently, meaning nng_fini no longer can race against another instance starting up. The nni_init checks on all public APIs are removed now. --- src/testing/nuts.h | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'src/testing') diff --git a/src/testing/nuts.h b/src/testing/nuts.h index 7a60aa32..1c1f4595 100644 --- a/src/testing/nuts.h +++ b/src/testing/nuts.h @@ -23,13 +23,18 @@ extern void nuts_logger( nng_log_level, nng_log_facility, const char *, const char *); // Call nng_fini during test finalization -- this avoids leak warnings. -extern void nng_fini(void); +#ifndef TEST_FINI #define TEST_FINI nng_fini() +#endif + +#ifndef TEST_INIT #define TEST_INIT \ do { \ + nng_init(NULL); \ nng_log_set_logger(nuts_logger); \ nng_log_set_level(NNG_LOG_NONE); \ } while (0) +#endif #include "acutest.h" #include -- cgit v1.2.3-70-g09d2