Ack existing writes before accepting new ones
diff --git a/leveldb/db_write.go b/leveldb/db_write.go
index fb78961..5576761 100644
--- a/leveldb/db_write.go
+++ b/leveldb/db_write.go
@@ -166,15 +166,15 @@
merged := 0
danglingMerge := false
defer func() {
+ for i := 0; i < merged; i++ {
+ db.writeAckC <- err
+ }
if danglingMerge {
// Only one dangling merge at most, so this is safe.
db.writeMergedC <- false
} else {
<-db.writeLockC
}
- for i := 0; i < merged; i++ {
- db.writeAckC <- err
- }
}()
mdb, mdbFree, err := db.flush(b.size())