From: Johannes Sixt Date: Sun, 19 Nov 2017 08:27:03 GMT Subject: Re: [PATCH 2/2] Reduce performance cost of the trace if trace category is disabled Message-ID: In-Reply-To: <20171119004247.22792-2-gennady.kupava@gmail.com> Am 19.11.2017 um 01:42 schrieb gennady.kupava@gmail.com: > +#define trace_printf_key(key, ...) \ > + do { \ > + if (trace_pass_fl(key)) \ > + trace_printf_key_fl(TRACE_CONTEXT, __LINE__, key, \ > + __VA_ARGS__); \ > + } while(0) > + > +#define trace_printf(...) trace_printf_key(&trace_default_key, __VA_ARGS__); > + > +#define trace_argv_printf(argv, ...) \ > + do { \ > + if (trace_pass_fl(&trace_default_key)) \ > + trace_argv_printf_fl(TRACE_CONTEXT, __LINE__, \ > + argv, __VA_ARGS__); \ > + } while(0) > + > +#define trace_strbuf(key, data) \ > + do { \ > + if (trace_pass_fl(key)) \ > + trace_strbuf_fl(TRACE_CONTEXT, __LINE__, key, data);\ > + } while(0) > + > +#define trace_performance(nanos, ...) \ > + do { \ > + if (trace_pass_fl(key)) \ The token "key" here looks suspicious. Did you mean &trace_perf_key? > + trace_performance_fl(TRACE_CONTEXT, __LINE__, nanos,\ > + __VA_ARGS__); \ > + } while(0) > + > +#define trace_performance_since(start, ...) \ > + do { \ > + if (trace_pass_fl(&trace_perf_key)) \ > + trace_performance_fl(TRACE_CONTEXT, __LINE__, \ > + getnanotime() - (start), \ > + __VA_ARGS__); \ > + } while(0) > > /* backend functions, use non-*fl macros instead */ > __attribute__((format (printf, 4, 5))) -- Hannes