aboutsummaryrefslogtreecommitdiff
path: root/tx.go
diff options
context:
space:
mode:
Diffstat (limited to 'tx.go')
-rw-r--r--tx.go8
1 files changed, 7 insertions, 1 deletions
diff --git a/tx.go b/tx.go
index 181444e..c18fbf7 100644
--- a/tx.go
+++ b/tx.go
@@ -18,6 +18,7 @@ type txid uint64
// quickly grow.
type Tx struct {
writable bool
+ managed bool
db *DB
meta *meta
buckets *buckets
@@ -155,7 +156,9 @@ func (t *Tx) DeleteBucket(name string) error {
// Commit writes all changes to disk and updates the meta page.
// Returns an error if a disk write error occurs.
func (t *Tx) Commit() error {
- if t.db == nil {
+ if t.managed {
+ panic("managed tx commit not allowed")
+ } else if t.db == nil {
return nil
} else if !t.writable {
t.Rollback()
@@ -194,6 +197,9 @@ func (t *Tx) Commit() error {
// Rollback closes the transaction and ignores all previous updates.
func (t *Tx) Rollback() {
+ if t.managed {
+ panic("managed tx rollback not allowed")
+ }
t.close()
}