Changeset: ab3f3dcd9e1b for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/ab3f3dcd9e1b
Modified Files:
gdk/gdk_bbp.c
Branch: Jul2021
Log Message:
After setting BBPUNLOADING bit, make sure it is cleared.
This may mean, clear (destroy) the bat, or just clear the bit,
depending on whether BBPDELETED is set.
diffs (35 lines):
diff --git a/gdk/gdk_bbp.c b/gdk/gdk_bbp.c
--- a/gdk/gdk_bbp.c
+++ b/gdk/gdk_bbp.c
@@ -2623,16 +2623,22 @@ decref(bat i, bool logical, bool release
if (lock)
MT_lock_unset(&GDKswapLock(i));
- if (swap && b != NULL) {
- if (lrefs == 0 && (BBP_status(i) & BBPDELETED) == 0) {
- /* free memory (if loaded) and delete from
- * disk (if transient but saved) */
- BBPdestroy(b);
+ if (swap) {
+ if (b != NULL) {
+ if (lrefs == 0 && (BBP_status(i) & BBPDELETED) == 0) {
+ /* free memory (if loaded) and delete from
+ * disk (if transient but saved) */
+ BBPdestroy(b);
+ } else {
+ TRC_DEBUG(BAT_, "%s unload and free bat %d\n",
func, i);
+ /* free memory of transient */
+ if (BBPfree(b) != GDK_SUCCEED)
+ return -1; /* indicate failure */
+ }
+ } else if (lrefs == 0 && (BBP_status(i) & BBPDELETED) == 0) {
+ BBPclear(i, true);
} else {
- TRC_DEBUG(BAT_, "%s unload and free bat %d\n", func, i);
- /* free memory of transient */
- if (BBPfree(b) != GDK_SUCCEED)
- return -1; /* indicate failure */
+ BBP_status_off(i, BBPUNLOADING);
}
}
if (tp)
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list