summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2021-03-04 10:56:17 +0100
committerChristian Grothoff <christian@grothoff.org>2021-03-04 10:56:17 +0100
commitb21ae427f405ac4e54aba8aa5f6f2dcfa175a525 (patch)
tree69238951474da3a5b728026d12c5983b90547401 /src
parent170616949a7ed86662a79a95ec8f4ffeacc449f1 (diff)
downloadmerchant-b21ae427f405ac4e54aba8aa5f6f2dcfa175a525.tar.gz
merchant-b21ae427f405ac4e54aba8aa5f6f2dcfa175a525.tar.bz2
merchant-b21ae427f405ac4e54aba8aa5f6f2dcfa175a525.zip
related to #6774: rollback AND suspend before starting async activity
Diffstat (limited to 'src')
-rw-r--r--src/backend/taler-merchant-httpd_post-tips-ID-pickup.c18
1 files changed, 8 insertions, 10 deletions
diff --git a/src/backend/taler-merchant-httpd_post-tips-ID-pickup.c b/src/backend/taler-merchant-httpd_post-tips-ID-pickup.c
index 797d6f25..4809fee8 100644
--- a/src/backend/taler-merchant-httpd_post-tips-ID-pickup.c
+++ b/src/backend/taler-merchant-httpd_post-tips-ID-pickup.c
@@ -826,6 +826,13 @@ RETRY:
if (! rollback)
{
TMH_db->rollback (TMH_db->cls);
+ MHD_suspend_connection (connection);
+ GNUNET_CONTAINER_DLL_insert (pc_head,
+ pc_tail,
+ pc);
+ pc->tt = GNUNET_SCHEDULER_add_delayed (EXCHANGE_TIMEOUT,
+ &do_timeout,
+ pc);
rollback = true;
}
try_withdraw (pc,
@@ -835,17 +842,8 @@ RETRY:
qs = GNUNET_DB_STATUS_SUCCESS_NO_RESULTS;
}
}
- if (GNUNET_DB_STATUS_SUCCESS_NO_RESULTS == qs)
- {
- MHD_suspend_connection (connection);
- GNUNET_CONTAINER_DLL_insert (pc_head,
- pc_tail,
- pc);
- pc->tt = GNUNET_SCHEDULER_add_delayed (EXCHANGE_TIMEOUT,
- &do_timeout,
- pc);
+ if (rollback)
return MHD_YES;
- }
}
if (GNUNET_DB_STATUS_SUCCESS_NO_RESULTS != qs)
{