Radish alpha
H
rad:z3QDZAW2FAfuLvihrhiyDC9fAD8G9
HardenedBSD Package Manager
Radicle
Git
Make jobs automatically close any open db connections
Marin Atanasov Nikolov committed 14 years ago
commit 39193fc04ba14a7cf131e26012813411d79666b3
parent 2cc4ec8
3 files changed +17 -4
modified libpkg/pkg_jobs.c
@@ -70,6 +70,7 @@ pkg_jobs_free_entry(struct pkg_jobs_entry *j)
	while (!STAILQ_EMPTY(&j->jobs)) {
		p = STAILQ_FIRST(&j->jobs);
		STAILQ_REMOVE_HEAD(&j->jobs, next);
+
		pkgdb_close(j->db);
		pkg_free(p);
	}

modified libpkg/pkg_private.h
@@ -90,7 +90,7 @@ struct pkg_jobs {
		pkg_jobs_t type;
		unsigned int resolved :1;
		STAILQ_ENTRY(pkg_jobs_entry) next;
-
	};
+
	} j;

	STAILQ_HEAD(jobs_multi, pkg_jobs_entry) multi;
};
@@ -110,12 +110,11 @@ struct pkg_repos {
		char *url;
		unsigned int line;
		STAILQ_ENTRY(pkg_repos_entry) entries;
-
	};
+
	} r;

	STAILQ_HEAD(repos, pkg_repos_entry) nodes;
};

-

int pkg_open2(struct pkg **p, struct archive **a, struct archive_entry **ae, const char *path);
void pkg_freecategories(struct pkg *pkg);
void pkg_freedeps(struct pkg *pkg);
modified libpkg/pkg_repo.c
@@ -160,9 +160,22 @@ pkg_repos_add(struct pkg_repos *repos, struct pkg_repos_entry *re)
int
pkg_repos_add_in_pkg(struct pkg *pkg, struct pkg_repos_entry *re)
{
+
	struct pkg_repos_entry *newre;
+

	assert(pkg != NULL && re != NULL);

-
	STAILQ_INSERT_TAIL(&pkg->repos, re, entries);
+
	if ((newre = calloc(1, sizeof(struct pkg_repos_entry))) == NULL) {
+
		EMIT_ERRNO("calloc", "pkg_repos_entry");
+
		return (EPKG_FATAL);
+
	}
+

+
	newre->name = strdup(re->name);
+
	newre->url  = strdup(re->url);
+
	newre->line = re->line;
+

+
	assert (newre->name != NULL && newre->url != NULL);
+

+
	STAILQ_INSERT_TAIL(&pkg->repos, newre, entries);

	return (EPKG_OK);
}