Changeset: 913260853ccb for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=913260853ccb
Modified Files:
clients/Tests/exports.stable.out
gdk/gdk.h
gdk/gdk_delta.h
gdk/gdk_private.h
gdk/gdk_tracer.c
gdk/gdk_tracer.h
monetdb5/mal/mal_function.c
monetdb5/mal/mal_function.h
monetdb5/mal/mal_listing.c
monetdb5/mal/mal_listing.h
Branch: Jun2020
Log Message:
Cleanup of tracer: do more inside function, export less, use lowercase.
diffs (truncated from 658 to 300 lines):
diff --git a/clients/Tests/exports.stable.out b/clients/Tests/exports.stable.out
--- a/clients/Tests/exports.stable.out
+++ b/clients/Tests/exports.stable.out
@@ -217,7 +217,6 @@ BUN BUNfnd(BAT *b, const void *right);
gdk_return BUNinplace(BAT *b, BUN p, const void *right, bool force)
__attribute__((__warn_unused_result__));
BAT *COLcopy(BAT *b, int tt, bool writable, role_t role);
BAT *COLnew(oid hseq, int tltype, BUN capacity, role_t role)
__attribute__((__warn_unused_result__));
-const char *COMPONENT_STR[];
size_t GDK_mem_maxsize;
size_t GDK_vm_maxsize;
gdk_return GDKanalytical_correlation(BAT *r, BAT *b1, BAT *b2, BAT *s, BAT *e,
int tpe);
@@ -304,8 +303,7 @@ str GDKstrndup(const char *s, size_t n)
void GDKsyserror(_In_z_ _Printf_format_string_ const char *format, ...)
__attribute__((__format__(__printf__, 1, 2)));
gdk_return GDKtracer_fill_comp_info(BAT *id, BAT *component, BAT *log_level);
gdk_return GDKtracer_flush_buffer(void);
-char *GDKtracer_get_timestamp(const char *fmt, char *buf, size_t sz);
-gdk_return GDKtracer_log(LOG_LEVEL level, const char *fmt, ...)
__attribute__((__format__(__printf__, 2, 3)));
+gdk_return GDKtracer_log(const char *file, const char *func, int lineno,
log_level_t lvl, component_t comp, const char *format, ...)
__attribute__((__format__(__printf__, 6, 7)));
void GDKtracer_reinit_basic(int sig);
gdk_return GDKtracer_reset_adapter(void);
gdk_return GDKtracer_reset_component_level(const char *comp);
@@ -335,8 +333,6 @@ size_t HEAPmemsize(Heap *h);
size_t HEAPvmsize(Heap *h);
void IMPSdestroy(BAT *b);
lng IMPSimprintsize(BAT *b);
-const char *LEVEL_STR[];
-LOG_LEVEL LVL_PER_COMPONENT[];
int MT_check_nr_cores(void);
int MT_create_thread(MT_Id *t, void (*function)(void *), void *arg, enum
MT_thr_detach d, const char *threadname);
void MT_exiting_thread(void);
@@ -521,6 +517,7 @@ gdk_return logger_restart(logger *lg);
int logger_sequence(logger *lg, int seq, lng *id);
gdk_return logger_upgrade_bat(logger *lg, const char *name, char tpe, oid id)
__attribute__((__warn_unused_result__));
void logger_with_ids(logger *lg);
+log_level_t lvl_per_component[];
void *mdlopen(const char *library, int mode);
const char *mercurial_revision(void) __attribute__((__const__));
int mo_add_option(opt **Set, int setlen, opt_kind kind, const char *name,
const char *value);
@@ -2612,8 +2609,8 @@ str thetajoinRef;
str thetaselectRef;
str tidRef;
str timestampRef;
-void traceFunction(COMPONENT comp, MalBlkPtr mb, MalStkPtr stk, int flg);
-void traceInstruction(COMPONENT comp, MalBlkPtr mb, MalStkPtr stk, InstrPtr p,
int flg);
+void traceFunction(component_t comp, MalBlkPtr mb, MalStkPtr stk, int flg);
+void traceInstruction(component_t comp, MalBlkPtr mb, MalStkPtr stk, InstrPtr
p, int flg);
str transactionRef;
str transaction_abortRef;
str transaction_beginRef;
diff --git a/gdk/gdk.h b/gdk/gdk.h
--- a/gdk/gdk.h
+++ b/gdk/gdk.h
@@ -1646,6 +1646,7 @@ gdk_export gdk_return BATorderidx(BAT *b
gdk_export gdk_return GDKmergeidx(BAT *b, BAT**a, int n_ar);
gdk_export bool BATcheckorderidx(BAT *b);
+#include "gdk_tracer.h"
#include "gdk_delta.h"
#include "gdk_hash.h"
#include "gdk_bbp.h"
diff --git a/gdk/gdk_delta.h b/gdk/gdk_delta.h
--- a/gdk/gdk_delta.h
+++ b/gdk/gdk_delta.h
@@ -9,8 +9,6 @@
#ifndef _GDK_DELTA_H_
#define _GDK_DELTA_H_
-#include "gdk_tracer.h"
-
/*
* We make sure here that the BUNs section of a BAT at least starts 4
* bytes from the BUN start. This ensures that the first data item of
diff --git a/gdk/gdk_private.h b/gdk/gdk_private.h
--- a/gdk/gdk_private.h
+++ b/gdk/gdk_private.h
@@ -19,7 +19,6 @@
#define PERSISTENTIDX 1
#include "gdk_system_private.h"
-#include "gdk_tracer.h"
enum heaptype {
offheap,
diff --git a/gdk/gdk_tracer.c b/gdk/gdk_tracer.c
--- a/gdk/gdk_tracer.c
+++ b/gdk/gdk_tracer.c
@@ -29,32 +29,36 @@ MT_Lock lock = MT_LOCK_INITIALIZER("GDKt
static char file_name[FILENAME_MAX];
-static ATOMIC_TYPE CUR_ADAPTER = ATOMIC_VAR_INIT(DEFAULT_ADAPTER);
+static ATOMIC_TYPE cur_adapter = ATOMIC_VAR_INIT(DEFAULT_ADAPTER);
-static LOG_LEVEL CUR_FLUSH_LEVEL = DEFAULT_FLUSH_LEVEL;
+static log_level_t cur_flush_level = DEFAULT_FLUSH_LEVEL;
#define GENERATE_LOG_LEVEL(COMP) DEFAULT_LOG_LEVEL,
-LOG_LEVEL LVL_PER_COMPONENT[] = {
+log_level_t lvl_per_component[] = {
FOREACH_COMP(GENERATE_LOG_LEVEL)
};
-const char *ADAPTER_STR[] = {
+static const char *adapter_str[] = {
FOREACH_ADPTR(GENERATE_STRING)
};
-const char *LAYER_STR[] = {
+static const char *layer_str[] = {
FOREACH_LAYER(GENERATE_STRING)
};
-const char *COMPONENT_STR[] = {
+static const char *component_str[] = {
FOREACH_COMP(GENERATE_STRING)
};
-const char *LEVEL_STR[] = {
+static const char *level_str[] = {
FOREACH_LEVEL(GENERATE_STRING)
};
+#define MXW "20"
+
+#define TS_SIZE ((size_t) 20) /* buffer size needed for timestamp */
+
/*
* GDKtracer Stream Macros
@@ -68,8 +72,7 @@ const char *LEVEL_STR[] = {
"%"MXW"s " \
"%-"MXW"s " \
"%-"MXW"s # "MSG, \
- GDKtracer_get_timestamp("%Y-%m-%d %H:%M:%S", \
- (char[20]){0}, 20), \
+ GDKtracer_get_timestamp((char[TS_SIZE]){0}, TS_SIZE), \
__FILE__, \
__func__, \
__LINE__, \
@@ -81,6 +84,18 @@ const char *LEVEL_STR[] = {
+static inline char *
+GDKtracer_get_timestamp(char *datetime, size_t dtsz)
+{
+ time_t now = time(NULL);
+ struct tm tmp;
+ (void) localtime_r(&now, &tmp);
+ strftime(datetime, dtsz, "%Y-%m-%d %H:%M:%S", &tmp);
+
+ return datetime;
+}
+
+
// When BASIC adapter is active, all the log messages are getting printed to a
file.
// This function prepares a file in order to write the contents of the buffer
when necessary.
static gdk_return
@@ -114,30 +129,30 @@ static void
_GDKtracer_layer_level_helper(int layer, int lvl)
{
const char *tok = NULL;
- LOG_LEVEL level = (LOG_LEVEL) lvl;
+ log_level_t level = (log_level_t) lvl;
for (int i = 0; i < COMPONENTS_COUNT; i++) {
if (layer == MDB_ALL) {
- if (LVL_PER_COMPONENT[i] != level)
- LVL_PER_COMPONENT[i] = level;
+ if (lvl_per_component[i] != level)
+ lvl_per_component[i] = level;
} else {
- tok = COMPONENT_STR[i];
+ tok = component_str[i];
switch (layer) {
case SQL_ALL:
if (strncmp(tok, "SQL_", 4) == 0)
- if (LVL_PER_COMPONENT[i] != level)
- LVL_PER_COMPONENT[i] = level;
+ if (lvl_per_component[i] != level)
+ lvl_per_component[i] = level;
break;
case MAL_ALL:
if (strncmp(tok, "MAL_", 4) == 0)
- if (LVL_PER_COMPONENT[i] != level)
- LVL_PER_COMPONENT[i] = level;
+ if (lvl_per_component[i] != level)
+ lvl_per_component[i] = level;
break;
case GDK_ALL:
if (strncmp(tok, "GDK", 3) == 0)
- if (LVL_PER_COMPONENT[i] != level)
- LVL_PER_COMPONENT[i] = level;
+ if (lvl_per_component[i] != level)
+ lvl_per_component[i] = level;
break;
default:
break;
@@ -146,48 +161,48 @@ static void
}
}
-static inline ADAPTER
+static inline adapter_t
find_adapter(const char *adptr)
{
if (adptr == NULL)
return ADAPTERS_COUNT;
for (int i = 0; i < (int) ADAPTERS_COUNT; i++) {
- if (strcasecmp(ADAPTER_STR[i], adptr) == 0) {
- return (ADAPTER) i;
+ if (strcasecmp(adapter_str[i], adptr) == 0) {
+ return (adapter_t) i;
}
}
return ADAPTERS_COUNT;
}
-static inline LOG_LEVEL
+static inline log_level_t
find_level(const char *lvl)
{
if (lvl == NULL)
return LOG_LEVELS_COUNT;
for (int i = 0; i < (int) LOG_LEVELS_COUNT; i++) {
- if (strcasecmp(LEVEL_STR[i] + 2, lvl) == 0) {
- return (LOG_LEVEL) i;
+ if (strcasecmp(level_str[i] + 2, lvl) == 0) {
+ return (log_level_t) i;
}
}
return LOG_LEVELS_COUNT;
}
-static inline LAYER
+static inline layer_t
find_layer(const char *layer)
{
if (layer == NULL)
return LAYERS_COUNT;
for (int i = 0; i < (int) LAYERS_COUNT; i++) {
- if (strcasecmp(LAYER_STR[i], layer) == 0) {
- return (LAYER) i;
+ if (strcasecmp(layer_str[i], layer) == 0) {
+ return (layer_t) i;
}
}
return LAYERS_COUNT;
}
-static inline COMPONENT
+static inline component_t
find_component(const char *comp)
{
/* special case for the (currently) three components that end in _ */
@@ -201,8 +216,8 @@ find_component(const char *comp)
comp = "check_";
for (int i = 0; i < (int) COMPONENTS_COUNT; i++) {
- if (strcasecmp(COMPONENT_STR[i], comp) == 0) {
- return (COMPONENT) i;
+ if (strcasecmp(component_str[i], comp) == 0) {
+ return (component_t) i;
}
}
return COMPONENTS_COUNT;
@@ -215,18 +230,6 @@ find_component(const char *comp)
* API CALLS
*
*/
-char *
-GDKtracer_get_timestamp(const char *fmt, char *datetime, size_t dtsz)
-{
- time_t now = time(NULL);
- struct tm tmp;
- (void) localtime_r(&now, &tmp);
- strftime(datetime, dtsz, fmt, &tmp);
-
- return datetime;
-}
-
-
void
GDKtracer_reinit_basic(int sig)
{
@@ -234,7 +237,7 @@ GDKtracer_reinit_basic(int sig)
// GDKtracer needs to reopen the file only in
// case the adapter is BASIC
- if ((int) ATOMIC_GET(&CUR_ADAPTER) != BASIC)
+ if ((adapter_t) ATOMIC_GET(&cur_adapter) != BASIC)
return;
// Make sure that GDKtracer is not trying to flush the buffer
@@ -263,8 +266,8 @@ GDKtracer_stop(void)
gdk_return
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list