aboutsummaryrefslogtreecommitdiff
path: root/vendor/github.com/syndtr/goleveldb/leveldb/db_write.go
diff options
context:
space:
mode:
authorale <ale@incal.net>2018-08-31 08:28:51 +0100
committerale <ale@incal.net>2018-08-31 08:28:51 +0100
commitb3d419486a87c9193c2fd6c16168f600876e0f73 (patch)
tree849d1333d4fac8e5654e65a0fdf4b2cb00355ab9 /vendor/github.com/syndtr/goleveldb/leveldb/db_write.go
parent86a0bd2d15a07662fdae4e24589b08706c2e80b9 (diff)
downloadcrawl-b3d419486a87c9193c2fd6c16168f600876e0f73.tar.gz
crawl-b3d419486a87c9193c2fd6c16168f600876e0f73.zip
Update dependencies
Diffstat (limited to 'vendor/github.com/syndtr/goleveldb/leveldb/db_write.go')
-rw-r--r--vendor/github.com/syndtr/goleveldb/leveldb/db_write.go11
1 files changed, 10 insertions, 1 deletions
diff --git a/vendor/github.com/syndtr/goleveldb/leveldb/db_write.go b/vendor/github.com/syndtr/goleveldb/leveldb/db_write.go
index 3662d95..db0c1be 100644
--- a/vendor/github.com/syndtr/goleveldb/leveldb/db_write.go
+++ b/vendor/github.com/syndtr/goleveldb/leveldb/db_write.go
@@ -89,7 +89,11 @@ func (db *DB) flush(n int) (mdb *memDB, mdbFree int, err error) {
return false
case tLen >= pauseTrigger:
delayed = true
+ // Set the write paused flag explicitly.
+ atomic.StoreInt32(&db.inWritePaused, 1)
err = db.compTriggerWait(db.tcompCmdC)
+ // Unset the write paused flag.
+ atomic.StoreInt32(&db.inWritePaused, 0)
if err != nil {
return false
}
@@ -146,7 +150,7 @@ func (db *DB) unlockWrite(overflow bool, merged int, err error) {
}
}
-// ourBatch if defined should equal with batch.
+// ourBatch is batch that we can modify.
func (db *DB) writeLocked(batch, ourBatch *Batch, merge, sync bool) error {
// Try to flush memdb. This method would also trying to throttle writes
// if it is too fast and compaction cannot catch-up.
@@ -215,6 +219,11 @@ func (db *DB) writeLocked(batch, ourBatch *Batch, merge, sync bool) error {
}
}
+ // Release ourBatch if any.
+ if ourBatch != nil {
+ defer db.batchPool.Put(ourBatch)
+ }
+
// Seq number.
seq := db.seq + 1