Changeset: 53920a0f4f9a for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/53920a0f4f9a Modified Files: gdk/gdk_strimps.c Branch: string_imprints Log Message:
Initialize heap ref counts on contstruction diffs (53 lines): diff --git a/gdk/gdk_strimps.c b/gdk/gdk_strimps.c --- a/gdk/gdk_strimps.c +++ b/gdk/gdk_strimps.c @@ -447,6 +447,8 @@ BATcheckstrimps(BAT *b) hp->bitstrings_base = hp->strimps.base + hsize; /* bitmasks just after the pairs */ close(fd); + ATOMIC_INIT(&hp->strimps.refs, 1); + // STRMPincref(hp); hp->strimps.parentid = b->batCacheid; b->tstrimps = hp; TRC_DEBUG(ACCELERATOR, "BATcheckstrimps(" ALGOBATFMT "): reusing persisted strimp\n", ALGOBATPAR(b)); @@ -666,7 +668,7 @@ STRMPcreateStrimpHeap(BAT *b, BAT *s) r->bitstrings_base = h2; r->strimps.free = sz; r->rec_cnt = 0; - + ATOMIC_INIT(&r->strimps.refs, 1); } return r; } @@ -677,6 +679,7 @@ STRMPcreate(BAT *b, BAT *s) lng t0 = 0; BAT *pb; + MT_thread_setalgorithm("create strimp index"); TRC_DEBUG_IF(ACCELERATOR) t0 = GDKusec(); if (ATOMstorage(b->ttype) != TYPE_str) { GDKerror("Cannot create strimps index for non string bats\n"); @@ -709,7 +712,6 @@ STRMPcreate(BAT *b, BAT *s) MT_lock_unset(&b->batIdxLock); return GDK_FAIL; } - HEAPincref(&r->strimps); dh = (uint64_t *)r->bitstrings_base; /* Compute bitstrings */ @@ -810,6 +812,7 @@ void STRMPdestroy(BAT *b) { if (b && b->tstrimps) { + TRC_DEBUG(ACCELERATOR, "Destroying strimp %s\n", b->tstrimps->strimps.filename); MT_lock_set(&b->batIdxLock); if (b->tstrimps == (Strimps *)1) { b->tstrimps = NULL; @@ -829,6 +832,7 @@ void STRMPfree(BAT *b) { if (b && b->tstrimps) { + TRC_DEBUG(ACCELERATOR, "Freeing strimp for BAT %s\n", b->tstrimps->strimps.filename); Strimps *s; MT_lock_set(&b->batIdxLock); if ((s = b->tstrimps) != NULL && s != (Strimps *)1) { _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list