Skip to content

Commit c2c0c82

Browse files
CDRIVER-4697: more efficient trace toggle (#1634)
Optimized trace toggle in mongoc-trace-private.h by updating if (MONGOC_TRACE_ENABLED) to if (MONGOC_TRACE_ENABLED && gLogTrace) and removing static from gLogTrace.
1 parent 58f9b49 commit c2c0c82

File tree

2 files changed

+12
-9
lines changed

2 files changed

+12
-9
lines changed

src/libmongoc/src/mongoc/mongoc-log.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@
3939
static bson_once_t once = BSON_ONCE_INIT;
4040
static bson_mutex_t gLogMutex;
4141
static mongoc_log_func_t gLogFunc = mongoc_log_default_handler;
42-
static bool gLogTrace = MONGOC_TRACE_ENABLED;
42+
bool gLogTrace = MONGOC_TRACE_ENABLED;
4343
static void *gLogData;
4444

4545
static BSON_ONCE_FUN (_mongoc_ensure_mutex_once)

src/libmongoc/src/mongoc/mongoc-trace-private.h

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -31,43 +31,46 @@
3131

3232
BSON_BEGIN_DECLS
3333

34+
// `gLogTrace` determines if tracing is enabled at runtime.
35+
extern bool gLogTrace;
36+
3437
#define TRACE(msg, ...) \
3538
do { \
36-
if (MONGOC_TRACE_ENABLED) { \
39+
if (MONGOC_TRACE_ENABLED && gLogTrace) { \
3740
mongoc_log ( \
3841
MONGOC_LOG_LEVEL_TRACE, MONGOC_LOG_DOMAIN, "TRACE: %s():%d " msg, BSON_FUNC, __LINE__, __VA_ARGS__); \
3942
} \
4043
} while (0)
4144
#define ENTRY \
4245
do { \
43-
if (MONGOC_TRACE_ENABLED) { \
46+
if (MONGOC_TRACE_ENABLED && gLogTrace) { \
4447
mongoc_log (MONGOC_LOG_LEVEL_TRACE, MONGOC_LOG_DOMAIN, "ENTRY: %s():%d", BSON_FUNC, __LINE__); \
4548
} \
4649
} while (0)
4750
#define EXIT \
4851
do { \
49-
if (MONGOC_TRACE_ENABLED) { \
52+
if (MONGOC_TRACE_ENABLED && gLogTrace) { \
5053
mongoc_log (MONGOC_LOG_LEVEL_TRACE, MONGOC_LOG_DOMAIN, " EXIT: %s():%d", BSON_FUNC, __LINE__); \
5154
} \
5255
return; \
5356
} while (0)
5457
#define RETURN(ret) \
5558
do { \
56-
if (MONGOC_TRACE_ENABLED) { \
59+
if (MONGOC_TRACE_ENABLED && gLogTrace) { \
5760
mongoc_log (MONGOC_LOG_LEVEL_TRACE, MONGOC_LOG_DOMAIN, " EXIT: %s():%d", BSON_FUNC, __LINE__); \
5861
} \
5962
return ret; \
6063
} while (0)
6164
#define GOTO(label) \
6265
do { \
63-
if (MONGOC_TRACE_ENABLED) { \
66+
if (MONGOC_TRACE_ENABLED && gLogTrace) { \
6467
mongoc_log (MONGOC_LOG_LEVEL_TRACE, MONGOC_LOG_DOMAIN, " GOTO: %s():%d %s", BSON_FUNC, __LINE__, #label); \
6568
} \
6669
goto label; \
6770
} while (0)
6871
#define DUMP_BYTES(_n, _b, _l) \
6972
do { \
70-
if (MONGOC_TRACE_ENABLED) { \
73+
if (MONGOC_TRACE_ENABLED && gLogTrace) { \
7174
mongoc_log (MONGOC_LOG_LEVEL_TRACE, \
7275
MONGOC_LOG_DOMAIN, \
7376
"TRACE: %s():%d %s = %p [%d]", \
@@ -81,7 +84,7 @@ BSON_BEGIN_DECLS
8184
} while (0)
8285
#define DUMP_BSON(_bson) \
8386
do { \
84-
if (MONGOC_TRACE_ENABLED) { \
87+
if (MONGOC_TRACE_ENABLED && gLogTrace) { \
8588
char *_bson_str; \
8689
if (_bson) { \
8790
_bson_str = bson_as_canonical_extended_json (_bson, NULL); \
@@ -100,7 +103,7 @@ BSON_BEGIN_DECLS
100103
} while (0)
101104
#define DUMP_IOVEC(_n, _iov, _iovcnt) \
102105
do { \
103-
if (MONGOC_TRACE_ENABLED) { \
106+
if (MONGOC_TRACE_ENABLED && gLogTrace) { \
104107
mongoc_log (MONGOC_LOG_LEVEL_TRACE, \
105108
MONGOC_LOG_DOMAIN, \
106109
"TRACE: %s():%d %s = %p [%d]", \

0 commit comments

Comments
 (0)