aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBen Johnson <benbjohnson@yahoo.com>2015-09-04 15:04:52 -0600
committerBen Johnson <benbjohnson@yahoo.com>2015-09-04 15:04:52 -0600
commit0c24824a36818ef7fb62d30142020dbe3178468d (patch)
tree475d675fa2353b34d2994ecea52419881d9ab28a
parentMerge pull request #411 from Apsalar/solaris-mmap-flock-fixes (diff)
parentrelease read-write tx after close (diff)
downloaddedo-0c24824a36818ef7fb62d30142020dbe3178468d.tar.gz
dedo-0c24824a36818ef7fb62d30142020dbe3178468d.tar.xz
Merge pull request #413 from benbjohnson/release-rwtx
Release read-write Tx after close
-rw-r--r--tx.go8
1 files changed, 7 insertions, 1 deletions
diff --git a/tx.go b/tx.go
index 6b52b2c..cb60149 100644
--- a/tx.go
+++ b/tx.go
@@ -236,7 +236,8 @@ func (tx *Tx) close() {
var freelistPendingN = tx.db.freelist.pending_count()
var freelistAlloc = tx.db.freelist.size()
- // Remove writer lock.
+ // Remove transaction ref & writer lock.
+ tx.db.rwtx = nil
tx.db.rwlock.Unlock()
// Merge statistics.
@@ -250,7 +251,12 @@ func (tx *Tx) close() {
} else {
tx.db.removeTx(tx)
}
+
+ // Clear all references.
tx.db = nil
+ tx.meta = nil
+ tx.root = Bucket{tx: tx}
+ tx.pages = nil
}
// Copy writes the entire database to a writer.