Mercurial > urweb
diff src/c/http.c @ 1941:9f3597979e98
Tweaking handling of database transactions
author | Adam Chlipala <adam@chlipala.net> |
---|---|
date | Wed, 25 Dec 2013 13:11:43 -0500 |
parents | d02c1a0d8082 |
children | 68c8ffc4ae69 |
line wrap: on
line diff
--- a/src/c/http.c Wed Dec 25 12:02:42 2013 -0500 +++ b/src/c/http.c Wed Dec 25 13:11:43 2013 -0500 @@ -447,10 +447,11 @@ } void uw_do_expunge(uw_context ctx, uw_Basis_client cli, void *data) { - do { - uw_ensure_transaction(ctx); - uw_get_app(ctx)->expunger(ctx, cli); - } while (uw_commit(ctx) && (uw_rollback(ctx, 1), 1)); + uw_ensure_transaction(ctx); + uw_get_app(ctx)->expunger(ctx, cli); + + if (uw_commit(ctx)) + uw_error(ctx, UNLIMITED_RETRY, "Rerunning expunge transaction"); } void uw_post_expunge(uw_context ctx, void *data) {