Changeset: af96b9fd5311 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/af96b9fd5311
Modified Files:
gdk/gdk_bbp.c
Branch: multi-cachelock
Log Message:
only lock the BBPdelete (ie remove from name hash) using the BBPnameLock
diffs (38 lines):
diff --git a/gdk/gdk_bbp.c b/gdk/gdk_bbp.c
--- a/gdk/gdk_bbp.c
+++ b/gdk/gdk_bbp.c
@@ -2435,7 +2435,7 @@ BBPgetsubdir(str s, bat i)
*s = 0;
}
-/*
+/*
* Extends the bpp list of some thread by reserving from the common pool,
* increasing the common pool if it runs out of space.
*/
@@ -2651,7 +2651,6 @@ bbpclear(bat i, bool lock)
TRC_DEBUG(BAT_, "clear %d (%s)\n", (int) i, BBP_logical(i));
BBPuncacheit(i, true);
TRC_DEBUG(BAT_, "set to unloading %d\n", i);
- MT_lock_set(&BBPnameLock);
if (lock) {
MT_lock_set(&GDKswapLock(i));
}
@@ -2662,7 +2661,9 @@ bbpclear(bat i, bool lock)
if (lock)
MT_lock_unset(&GDKswapLock(i));
if (!BBPtmpcheck(BBP_logical(i))) {
+ MT_lock_set(&BBPnameLock);
BBP_delete(i);
+ MT_lock_unset(&BBPnameLock);
}
if (BBP_logical(i) != BBP_bak(i))
GDKfree(BBP_logical(i));
@@ -2686,7 +2687,6 @@ bbpclear(bat i, bool lock)
t->stat_call_count = 0;
}
BBP_pid(i) = ~(MT_Id)0; /* not zero, not a valid thread id */
- MT_lock_unset(&BBPnameLock);
}
void
_______________________________________________
checkin-list mailing list -- [email protected]
To unsubscribe send an email to [email protected]