mirror of
https://github.com/google/leveldb.git
synced 2024-12-28 04:00:09 +08:00
80e5b0d944
Fixed race condition reported by Dave Smit (dizzyd@dizzyd,com) on the leveldb mailing list. We were not signalling waiters after a trivial move from level-0. The result was that in some cases (hard to reproduce), a write would get stuck forever waiting for the number of level-0 files to drop below its hard limit. The new code is simpler: there is just one condition variable instead of two, and the condition variable is signalled after every piece of background work finishes. Also, all compaction work (including for manual compactions) is done in the background thread, and therefore we can remove the "compacting_" variable. git-svn-id: https://leveldb.googlecode.com/svn/trunk@31 62dab493-f737-651d-591e-8d6aee1b9529 |
||
---|---|---|
.. | ||
builder.cc | ||
builder.h | ||
corruption_test.cc | ||
db_bench.cc | ||
db_impl.cc | ||
db_impl.h | ||
db_iter.cc | ||
db_iter.h | ||
db_test.cc | ||
dbformat_test.cc | ||
dbformat.cc | ||
dbformat.h | ||
filename_test.cc | ||
filename.cc | ||
filename.h | ||
log_format.h | ||
log_reader.cc | ||
log_reader.h | ||
log_test.cc | ||
log_writer.cc | ||
log_writer.h | ||
memtable.cc | ||
memtable.h | ||
repair.cc | ||
skiplist_test.cc | ||
skiplist.h | ||
snapshot.h | ||
table_cache.cc | ||
table_cache.h | ||
version_edit_test.cc | ||
version_edit.cc | ||
version_edit.h | ||
version_set.cc | ||
version_set.h | ||
write_batch_internal.h | ||
write_batch_test.cc | ||
write_batch.cc |