diff options
author | Natanael Copa <ncopa@alpinelinux.org> | 2010-03-06 19:22:01 +0000 |
---|---|---|
committer | Natanael Copa <ncopa@alpinelinux.org> | 2010-06-11 07:02:18 +0000 |
commit | 36d1bfb4ed1fda9abf59a17d84acc1853a003e5d (patch) | |
tree | 12f1d2603bd3b30d1a28b0354f4d1087fa05e6bc | |
parent | 7aed449427348824f7fbfc0e9dc698ea6519f91e (diff) | |
download | apk-tools-36d1bfb4ed1fda9abf59a17d84acc1853a003e5d.tar.gz apk-tools-36d1bfb4ed1fda9abf59a17d84acc1853a003e5d.tar.bz2 apk-tools-36d1bfb4ed1fda9abf59a17d84acc1853a003e5d.tar.xz apk-tools-36d1bfb4ed1fda9abf59a17d84acc1853a003e5d.zip |
db: make apk_wait a part of dbopts
-rw-r--r-- | src/apk.c | 6 | ||||
-rw-r--r-- | src/apk_database.h | 3 | ||||
-rw-r--r-- | src/database.c | 7 |
3 files changed, 8 insertions, 8 deletions
@@ -235,7 +235,7 @@ int main(int argc, char **argv) struct apk_applet *applet; char short_options[256], *sopt; struct option *opt, *all_options; - int r, optindex, num_options, apk_wait = 0; + int r, optindex, num_options; void *ctx = NULL; struct apk_repository_list *repo = NULL; struct apk_database db; @@ -328,7 +328,7 @@ int main(int argc, char **argv) apk_flags |= APK_PURGE; break; case 0x105: - apk_wait = atoi(optarg); + dbopts.lock_wait = atoi(optarg); break; case 0x109: apk_flags |= APK_NO_NETWORK; @@ -356,7 +356,7 @@ int main(int argc, char **argv) argv++; } - r = apk_db_open(&db, &dbopts, apk_wait); + r = apk_db_open(&db, &dbopts); if (r != 0) { apk_error("Failed to open apk database: %s", apk_error_str(r)); diff --git a/src/apk_database.h b/src/apk_database.h index ffb1bce..da33289 100644 --- a/src/apk_database.h +++ b/src/apk_database.h @@ -90,6 +90,7 @@ struct apk_repository_list { }; struct apk_db_options { + int lock_wait; unsigned long open_flags; char *root; char *keys_dir; @@ -155,7 +156,7 @@ struct apk_db_file *apk_db_file_query(struct apk_database *db, APK_OPENF_NO_SCRIPTS | \ APK_OPENF_NO_WORLD) -int apk_db_open(struct apk_database *db, struct apk_db_options *dbopts, int apk_wait); +int apk_db_open(struct apk_database *db, struct apk_db_options *dbopts); void apk_db_close(struct apk_database *db); int apk_db_write_config(struct apk_database *db); int apk_db_run_triggers(struct apk_database *db); diff --git a/src/database.c b/src/database.c index 3d49c9e..e7d6b4e 100644 --- a/src/database.c +++ b/src/database.c @@ -1025,8 +1025,7 @@ static void handle_alarm(int sig) { } -int apk_db_open(struct apk_database *db, struct apk_db_options *dbopts, - int apk_wait) +int apk_db_open(struct apk_database *db, struct apk_db_options *dbopts) { const char *msg = NULL; struct apk_repository_list *repo = NULL; @@ -1086,7 +1085,7 @@ int apk_db_open(struct apk_database *db, struct apk_db_options *dbopts, if (db->lock_fd < 0 || flock(db->lock_fd, LOCK_EX | LOCK_NB) < 0) { msg = "Unable to lock database"; - if (apk_wait) { + if (dbopts->lock_wait) { struct sigaction sa, old_sa; apk_message("Waiting for repository lock"); @@ -1095,7 +1094,7 @@ int apk_db_open(struct apk_database *db, struct apk_db_options *dbopts, sa.sa_flags = SA_ONESHOT; sigaction(SIGALRM, &sa, &old_sa); - alarm(apk_wait); + alarm(dbopts->lock_wait); if (flock(db->lock_fd, LOCK_EX) < 0) goto ret_errno; |