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