Merger razor_transaction_run() and destroy() as finish().
authorKristian Høgsberg <krh@redhat.com>
Mon, 7 Apr 2008 04:06:22 +0000 (00:06 -0400)
committerKristian Høgsberg <krh@redhat.com>
Mon, 7 Apr 2008 04:06:22 +0000 (00:06 -0400)
main.c
razor.c
razor.h
test-driver.c

diff --git a/main.c b/main.c
index d3ff3ae..6bcd996 100644 (file)
--- a/main.c
+++ b/main.c
@@ -351,8 +351,7 @@ command_update(int argc, const char *argv[])
        if (errors)
                return 1;
 
-       set = razor_transaction_run(trans);
-       razor_transaction_destroy(trans);
+       set = razor_transaction_finish(trans);
        razor_set_write(set, updated_repo_filename);
        razor_set_destroy(set);
        razor_set_destroy(upstream);
@@ -376,8 +375,7 @@ command_remove(int argc, const char *argv[])
        if (errors)
                return 1;
 
-       set = razor_transaction_run(trans);
-       razor_transaction_destroy(trans);
+       set = razor_transaction_finish(trans);
        razor_set_write(set, updated_repo_filename);
        razor_set_destroy(set);
        printf("wrote system-updated.repo\n");
@@ -546,13 +544,7 @@ command_install(int argc, const char *argv[])
        if (errors)
                return 1;
 
-       /* FIXME: Use _finish() convention here?  That is, a function
-        * that starts the computation and returns the result while
-        * destroying the transaction.  Nice for transient objects
-        * such as the merger and the importer.  Should we do that for
-        * transactions too, that is, razor_transaction_finish()? */
-       next = razor_transaction_run(trans);
-       razor_transaction_destroy(trans);
+       next = razor_transaction_finish(trans);
 
        /* FIXME: Need razor_set_write_to_fd() so we can open it excl
         * up front here or fail if it already exists. */
diff --git a/razor.c b/razor.c
index 267abcc..5e77402 100644 (file)
--- a/razor.c
+++ b/razor.c
@@ -2841,11 +2841,12 @@ razor_transaction_unsatisfied_property(struct razor_transaction *trans,
 }
 
 struct razor_set *
-razor_transaction_run(struct razor_transaction *trans)
+razor_transaction_finish(struct razor_transaction *trans)
 {
        struct array install_packages, remove_packages;
        struct razor_merger *merger;
        struct razor_package *pkg, *i, *iend, *r, *rend, *s, *send;
+       struct razor_set *set;
        struct source *source1, *source2;
        char *spool, *ipool, *rpool;
        uint32_t *map;
@@ -2931,7 +2932,10 @@ razor_transaction_run(struct razor_transaction *trans)
        array_release(&install_packages);
        array_release(&remove_packages);
 
-       return razor_merger_finish(merger);
+       set = razor_merger_finish(merger);
+       razor_transaction_destroy(trans);
+
+       return set;
 }
 
 void
diff --git a/razor.h b/razor.h
index 3ff813f..cc6a869 100644 (file)
--- a/razor.h
+++ b/razor.h
@@ -115,7 +115,7 @@ razor_transaction_create(struct razor_set *system, struct razor_set *upstream,
                         int update_count, const char **update_packages,
                         int remove_count, const char **remove_packages);
 int razor_transaction_describe(struct razor_transaction *trans);
-struct razor_set *razor_transaction_run(struct razor_transaction *trans);
+struct razor_set *razor_transaction_finish(struct razor_transaction *trans);
 void razor_transaction_destroy(struct razor_transaction *trans);
 
 /* Temporary helper for test suite. */
index bdfe0e5..c94b48e 100644 (file)
@@ -269,8 +269,7 @@ end_transaction(struct test_context *ctx)
 
        if (!errors) {
                struct razor_set *new;
-               new = razor_transaction_run(ctx->trans);
-               razor_set_destroy(ctx->system_set);
+               new = razor_transaction_finish(ctx->trans);
                ctx->system_set = new;
        }
 }