Changeset: cf813dd55bfb for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/cf813dd55bfb
Modified Files:
        gdk/gdk_logger.c
Branch: Sep2022
Log Message:

Fix some minor resource issues.


diffs (49 lines):

diff --git a/gdk/gdk_logger.c b/gdk/gdk_logger.c
--- a/gdk/gdk_logger.c
+++ b/gdk/gdk_logger.c
@@ -1056,12 +1056,6 @@ log_open_output(logger *lg)
                TRC_CRITICAL(GDK, "allocation failure\n");
                return GDK_FAIL;
        }
-       ATOMIC_INIT(&new_range->refcount, 1);
-       ATOMIC_INIT(&new_range->last_ts, 0);
-       ATOMIC_INIT(&new_range->end, 0);
-       ATOMIC_INIT(&new_range->pend, 0);
-       ATOMIC_INIT(&new_range->flushed_end, 0);
-       ATOMIC_INIT(&new_range->drops, 0);
        if (!LOG_DISABLED(lg)) {
                char id[32];
                char *filename;
@@ -1087,12 +1081,19 @@ log_open_output(logger *lg)
 
                if (new_range->output_log == NULL || 
mnstr_errnr(new_range->output_log) != MNSTR_NO__ERROR) {
                        TRC_CRITICAL(GDK, "creating %s failed: %s\n", filename, 
mnstr_peek_error(NULL));
+                       close_stream(new_range->output_log);
                        GDKfree(new_range);
                        GDKfree(filename);
                        return GDK_FAIL;
                }
                GDKfree(filename);
        }
+       ATOMIC_INIT(&new_range->refcount, 1);
+       ATOMIC_INIT(&new_range->last_ts, 0);
+       ATOMIC_INIT(&new_range->end, 0);
+       ATOMIC_INIT(&new_range->pend, 0);
+       ATOMIC_INIT(&new_range->flushed_end, 0);
+       ATOMIC_INIT(&new_range->drops, 0);
        new_range->id = lg->id;
        new_range->next = NULL;
        logged_range* current = lg->current;
@@ -2243,6 +2244,12 @@ log_destroy(logger *lg)
        log_close_output(lg);
        for (logged_range *p = lg->pending; p; ){
                logged_range *n = p->next;
+               ATOMIC_DESTROY(&p->refcount);
+               ATOMIC_DESTROY(&p->last_ts);
+               ATOMIC_DESTROY(&p->end);
+               ATOMIC_DESTROY(&p->pend);
+               ATOMIC_DESTROY(&p->flushed_end);
+               ATOMIC_DESTROY(&p->drops);
                GDKfree(p);
                p = n;
        }
_______________________________________________
checkin-list mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to