Radish alpha
H
rad:z3QDZAW2FAfuLvihrhiyDC9fAD8G9
HardenedBSD Package Manager
Radicle
Git
Make unlocking an already unlocked database a no-op, rather than failing an assert and dumping core.
Matthew Seaman committed 13 years ago
commit 693a38e5bf6ba053ab1767bc5b90417920bb7202
parent adc0dba
1 file changed +4 -2
modified libpkg/pkgdb.c
@@ -3883,8 +3883,10 @@ int
pkgdb_unlock(struct pkgdb *db)
{
	assert(db != NULL);
-
	assert(db->lock_count >= 1);
-
	if (!(--db->lock_count))
+
	assert(db->lock_count >= 0);
+
	if (db->lock_count > 0)
+
		db->lock_count--;
+
	if (db->lock_count == 0)
		return sql_exec(db->sqlite,
		    "PRAGMA main.locking_mode=NORMAL;BEGIN IMMEDIATE;COMMIT;");
	else