Changeset: 77a022e28a56 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=77a022e28a56 Modified Files: gdk/gdk_tracer.c Branch: Jun2020 Log Message:
Fux deadlock when using call logging.setlayerlevel. diffs (41 lines): diff --git a/gdk/gdk_tracer.c b/gdk/gdk_tracer.c --- a/gdk/gdk_tracer.c +++ b/gdk/gdk_tracer.c @@ -143,6 +143,13 @@ set_level_for_layer(int layer, int lvl) const char *tok = NULL; log_level_t level = (log_level_t) lvl; + // make sure we initialize before changing the component level + MT_lock_set(&lock); + if (file_name[0] == 0) { + _GDKtracer_init_basic_adptr(); + } + MT_lock_unset(&lock); + for (int i = 0; i < COMPONENTS_COUNT; i++) { if (layer == MDB_ALL) { lvl_per_component[i] = level; @@ -286,6 +293,13 @@ GDKtracer_set_component_level(const char return GDK_FAIL; } + // make sure we initialize before changing the component level + MT_lock_set(&lock); + if (file_name[0] == 0) { + _GDKtracer_init_basic_adptr(); + } + MT_lock_unset(&lock); + lvl_per_component[component] = level; return GDK_SUCCEED; @@ -481,7 +495,8 @@ GDKtracer_log(const char *file, const ch } MT_lock_set(&lock); if (file_name[0] == 0) { - _GDKtracer_init_basic_adptr(); + MT_lock_unset(&lock); + return; } MT_lock_unset(&lock); if (syserr) _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list