From e929eba364732aa3a7eb76e2c9c38b7d23b8a980 Mon Sep 17 00:00:00 2001 From: Ben Johnson Date: Wed, 20 May 2015 16:10:07 -0600 Subject: Wait for pending tx on close. This commit fixes the DB.Close() function so that it waits for any open transactions to finish before closing. --- db.go | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'db.go') diff --git a/db.go b/db.go index c415c1b..f5ca05e 100644 --- a/db.go +++ b/db.go @@ -351,8 +351,15 @@ func (db *DB) init() error { // Close releases all database resources. // All transactions must be closed before closing the database. func (db *DB) Close() error { + db.rwlock.Lock() + defer db.rwlock.Unlock() + db.metalock.Lock() defer db.metalock.Unlock() + + db.mmaplock.RLock() + defer db.mmaplock.RUnlock() + return db.close() } -- cgit v1.2.3