From 14c6bad2f6383b1637b328505f854f4f2369f7ae Mon Sep 17 00:00:00 2001 From: John Benediktsson Date: Wed, 26 Sep 2012 10:35:22 -0700 Subject: [PATCH] db: don't nest transactions. --- basis/db/db.factor | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/basis/db/db.factor b/basis/db/db.factor index 3c924e4698..da0cb9f42b 100644 --- a/basis/db/db.factor +++ b/basis/db/db.factor @@ -145,8 +145,11 @@ M: db-connection rollback-transaction ( -- ) "ROLLBACK" sql-command ; : in-transaction? ( -- ? ) in-transaction get ; -: with-transaction ( quot -- ) +: (with-transaction) ( quot -- ) t in-transaction [ - begin-transaction - [ ] [ rollback-transaction ] cleanup commit-transaction + begin-transaction [ ] [ rollback-transaction ] cleanup + commit-transaction ] with-variable ; inline + +: with-transaction ( quot -- ) + in-transaction get [ (with-transaction) ] unless ; inline