From 333673fc990e2677bb5d8a56808e4f4d25f3496e Mon Sep 17 00:00:00 2001 From: "C. McEnroe" Date: Mon, 23 Dec 2019 22:09:47 -0500 Subject: Actually only use a transaction for handlers that need it How did I manage that? --- litterbox.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/litterbox.c b/litterbox.c index 8015cec..39fce8f 100644 --- a/litterbox.c +++ b/litterbox.c @@ -368,9 +368,13 @@ static void handle(struct Message msg) { if (!msg.cmd) return; for (size_t i = 0; i < ARRAY_LEN(Handlers); ++i) { if (strcmp(msg.cmd, Handlers[i].cmd)) continue; - dbExec(db, SQL(BEGIN TRANSACTION;)); - Handlers[i].fn(&msg); - dbExec(db, SQL(COMMIT TRANSACTION;)); + if (Handlers[i].transaction) { + dbExec(db, SQL(BEGIN TRANSACTION;)); + Handlers[i].fn(&msg); + dbExec(db, SQL(COMMIT TRANSACTION;)); + } else { + Handlers[i].fn(&msg); + } break; } } -- cgit 1.4.1