From 8ebc8340ebc13704014d5b2a3bbcd453786162c8 Mon Sep 17 00:00:00 2001 From: Adam Chlipala Date: Wed, 25 Dec 2013 13:11:43 -0500 Subject: Tweaking handling of database transactions --- src/c/http.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) (limited to 'src/c/http.c') diff --git a/src/c/http.c b/src/c/http.c index 9050aaf4..17833ce1 100644 --- a/src/c/http.c +++ b/src/c/http.c @@ -447,10 +447,11 @@ void uw_copy_client_data(void *dst, void *src) { } 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) { -- cgit v1.2.3