diff options
Diffstat (limited to 'transaction.go')
-rw-r--r-- | transaction.go | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/transaction.go b/transaction.go index d680e24..857defb 100644 --- a/transaction.go +++ b/transaction.go @@ -40,10 +40,14 @@ func (t *Transaction) id() txnid { // Close closes the transaction and releases any pages it is using. func (t *Transaction) Close() { - if t.rwtransaction != nil { - t.rwtransaction.Rollback() + if t.db != nil { + if t.rwtransaction != nil { + t.rwtransaction.Rollback() + } else { + t.db.removeTransaction(t) + t.db = nil + } } - t.db.removeTransaction(t) } // DB returns a reference to the database that created the transaction. |