Radish alpha
H
rad:z3QDZAW2FAfuLvihrhiyDC9fAD8G9
HardenedBSD Package Manager
Radicle
Git
Read lock is now no-op unles READ_LOCK option is turned on.
Vsevolod Stakhov committed 11 years ago
commit 3542d49fa517a405607ffa262e0cb5ed34350bfd
parent 88b320e
2 files changed +12 -0
modified libpkg/pkg_config.c
@@ -317,6 +317,12 @@ static struct config_entry c[] = {
		"0",
		"How many workers are used for pkg-repo (hw.ncpu if 0)"
	},
+
	{
+
		PKG_BOOL,
+
		"READ_LOCK",
+
		"NO",
+
		"Use read locking for query database"
+
	},
};

static bool parsed = false;
modified libpkg/pkgdb.c
@@ -2952,6 +2952,8 @@ pkgdb_obtain_lock(struct pkgdb *db, pkgdb_lock_t type)

	switch (type) {
	case PKGDB_LOCK_READONLY:
+
		if (!ucl_object_toboolean(pkg_config_get("READ_LOCK")))
+
				return (EPKG_OK);
		lock_sql = readonly_lock_sql;
		pkg_debug(1, "want to get a read only lock on a database");
		break;
@@ -3026,8 +3028,12 @@ pkgdb_release_lock(struct pkgdb *db, pkgdb_lock_t type)

	switch (type) {
	case PKGDB_LOCK_READONLY:
+
		if (!ucl_object_toboolean(pkg_config_get("READ_LOCK")))
+
			return (EPKG_OK);
+

		unlock_sql = readonly_unlock_sql;
		pkg_debug(1, "release a read only lock on a database");
+

		break;
	case PKGDB_LOCK_ADVISORY:
		unlock_sql = advisory_unlock_sql;