rocksdb/util
Dhruba Borthakur 38671c4d54 Fix a race condition while processing tasks by background threads.
Summary:
Suppose you submit 100 background tasks one after another. The first
enqueu task finds that the queue is empty and wakes up one worker thread.
Now suppose that all remaining 99 work items are enqueued, they do not
wake up any worker threads because the queue is already non-empty.
This causes a situation when there are 99 tasks in the task queue but
only one worker thread is processing a task while the remaining
worker threads are waiting.
The fix is to always wakeup one worker thread while enqueuing a task.

I also added a check to count the number of elements in the queue
to help in debugging.

Test Plan: make clean check.

Reviewers: chip

Reviewed By: chip

CC: leveldb

Differential Revision: https://reviews.facebook.net/D7203
2012-12-09 17:15:27 -08:00
..
arena.cc A number of fixes: 2011-10-31 17:22:06 +00:00
arena.h A number of fixes: 2011-10-31 17:22:06 +00:00
arena_test.cc Fix all warnings generated by -Wall option to the compiler. 2012-11-06 14:07:31 -08:00
auto_split_logger.h Fix all warnings generated by -Wall option to the compiler. 2012-11-06 14:07:31 -08:00
bloom.cc Fix all the lint errors. 2012-11-28 17:18:41 -08:00
bloom_test.cc Fix all warnings generated by -Wall option to the compiler. 2012-11-06 14:07:31 -08:00
build_version.h Record the version of the source repository that was used to build the leveldb library. 2012-08-21 14:47:15 -07:00
cache.cc Fix all warnings generated by -Wall option to the compiler. 2012-11-06 14:07:31 -08:00
cache_test.cc Fix all warnings generated by -Wall option to the compiler. 2012-11-06 14:07:31 -08:00
coding.cc Added methods to write small ints to bit streams. 2012-12-07 10:42:19 -08:00
coding.h Added methods to write small ints to bit streams. 2012-12-07 10:42:19 -08:00
coding_test.cc Fixed off by 1 in tests. 2012-12-07 10:48:46 -08:00
comparator.cc merge 1.5 2012-08-28 11:43:33 -07:00
crc32c.cc Fix all the lint errors. 2012-11-28 17:18:41 -08:00
crc32c.h A number of fixes: 2011-10-31 17:22:06 +00:00
crc32c_test.cc Fix all warnings generated by -Wall option to the compiler. 2012-11-06 14:07:31 -08:00
env.cc fixed issues 66 (leaking files on disk error) and 68 (no sync of CURRENT file) 2012-01-25 14:56:52 -08:00
env_hdfs.cc Move WAL files to archive directory, instead of deleting. 2012-11-28 17:28:08 -08:00
env_posix.cc Fix a race condition while processing tasks by background threads. 2012-12-09 17:15:27 -08:00
env_test.cc Fix all warnings generated by -Wall option to the compiler. 2012-11-06 14:07:31 -08:00
filelock_test.cc Prevent concurrent multiple opens of leveldb database. 2012-08-20 23:55:04 -07:00
filter_policy.cc Added bloom filter support. 2012-04-17 08:36:46 -07:00
hash.cc A number of fixes: 2011-10-31 17:22:06 +00:00
hash.h reverting disastrous MOE commit, returning to r21 2011-04-19 23:11:15 +00:00
histogram.cc A number of fixes: 2011-10-31 17:22:06 +00:00
histogram.h A number of fixes: 2011-10-31 17:22:06 +00:00
ldb_cmd.cc ldb: Add compression and bloom filter options. 2012-12-07 14:26:37 -08:00
ldb_cmd.h ldb: Add compression and bloom filter options. 2012-12-07 14:26:37 -08:00
logging.cc Fix all warnings generated by -Wall option to the compiler. 2012-11-06 14:07:31 -08:00
logging.h A number of fixes: 2011-10-31 17:22:06 +00:00
murmurhash.cc Implement RowLocks for assoc schema 2012-10-03 23:19:01 -07:00
murmurhash.h Implement RowLocks for assoc schema 2012-10-03 23:19:01 -07:00
mutexlock.h Implement ReadWrite locks for leveldb 2012-10-01 22:37:39 -07:00
options.cc Move WAL files to archive directory, instead of deleting. 2012-11-28 17:28:08 -08:00
posix_logger.h Enable LevelDb to create a new log file if current log file is too large. 2012-10-26 14:55:02 -07:00
random.h A number of fixes: 2011-10-31 17:22:06 +00:00
stats_logger.h Clean up compiler warnings generated by -Wall option. 2012-08-29 14:24:51 -07:00
status.cc A number of fixes: 2011-10-31 17:22:06 +00:00
testharness.cc Fix all warnings generated by -Wall option to the compiler. 2012-11-06 14:07:31 -08:00
testharness.h A number of fixes: 2011-10-31 17:22:06 +00:00
testutil.cc Fix all warnings generated by -Wall option to the compiler. 2012-11-06 14:07:31 -08:00
testutil.h A number of fixes: 2011-10-31 17:22:06 +00:00