rocksdb/util
Dmitri Smirnov 0a4cdde50a Windows thread
Summary:
introduce new methods into a public threadpool interface,
- allow submission of std::functions as they allow greater flexibility.
- add Joining methods to the implementation to join scheduled and submitted jobs with
  an option to cancel jobs that did not start executing.
- Remove ugly `#ifdefs` between pthread and std implementation, make it uniform.
- introduce pimpl for a drop in replacement of the implementation
- Introduce rocksdb::port::Thread typedef which is a replacement for std::thread.  On Posix Thread defaults as before std::thread.
- Implement WindowsThread that allocates memory in a more controllable manner than windows std::thread with a replaceable implementation.
- should be no functionality changes.
Closes https://github.com/facebook/rocksdb/pull/1823

Differential Revision: D4492902

Pulled By: siying

fbshipit-source-id: c74cb11
2017-02-06 14:54:18 -08:00
..
aligned_buffer.h direct reads refactor 2017-01-11 16:54:12 -08:00
allocator.h Updated all copyright headers to the new format. 2016-02-09 15:12:00 -08:00
arena_test.cc Updated all copyright headers to the new format. 2016-02-09 15:12:00 -08:00
arena.cc FreeBSD: malloc_usable_size is in <malloc_np.h> (#1428) 2016-10-28 10:44:52 -07:00
arena.h Updated all copyright headers to the new format. 2016-02-09 15:12:00 -08:00
autovector_test.cc Eliminate use of 'using namespace std'. Also remove a number of ADL references to std functions. 2016-05-20 07:42:18 -07:00
autovector.h Implement non-exclusive locks 2016-12-05 17:39:17 -08:00
bloom_test.cc Updated all copyright headers to the new format. 2016-02-09 15:12:00 -08:00
bloom.cc Updated all copyright headers to the new format. 2016-02-09 15:12:00 -08:00
build_version.cc.in Makefile: generate util/build_version.cc from .in file (#1384) 2016-10-25 11:31:39 -07:00
build_version.h Updated all copyright headers to the new format. 2016-02-09 15:12:00 -08:00
cache_bench.cc Introduce ClockCache 2016-08-19 12:28:19 -07:00
cache_test.cc NewLRUCache() to pick number of shard bits based on capacity if not given 2017-01-27 06:39:12 -08:00
cf_options.cc Range deletion microoptimizations 2016-11-21 12:24:13 -08:00
cf_options.h Range deletion microoptimizations 2016-11-21 12:24:13 -08:00
channel.h Updated all copyright headers to the new format. 2016-02-09 15:12:00 -08:00
clock_cache.cc NewLRUCache() to pick number of shard bits based on capacity if not given 2017-01-27 06:39:12 -08:00
clock_cache.h Introduce ClockCache 2016-08-19 12:28:19 -07:00
coding_test.cc Updated all copyright headers to the new format. 2016-02-09 15:12:00 -08:00
coding.cc Updated all copyright headers to the new format. 2016-02-09 15:12:00 -08:00
coding.h TableBuilder / TableReader support for range deletion 2016-08-19 15:10:31 -07:00
compaction_job_stats_impl.cc Single Delete Mismatch and Fallthrough statistics 2016-08-16 08:21:43 -07:00
comparator.cc Improve BytewiseComparatorImpl::FindShortestSeparator 2016-04-25 23:02:14 -07:00
compression.h Remove use of deprecated LZ4 function 2016-11-21 12:24:14 -08:00
concurrent_arena.cc Gcc 7 error expansion to defined 2016-12-13 18:39:14 -08:00
concurrent_arena.h Gcc 7 error expansion to defined 2016-12-13 18:39:14 -08:00
crc32c_test.cc Updated all copyright headers to the new format. 2016-02-09 15:12:00 -08:00
crc32c.cc Updated all copyright headers to the new format. 2016-02-09 15:12:00 -08:00
crc32c.h Updated all copyright headers to the new format. 2016-02-09 15:12:00 -08:00
db_options.cc direct io write support 2016-12-22 13:09:19 -08:00
db_options.h direct io write support 2016-12-22 13:09:19 -08:00
delete_scheduler_test.cc Windows thread 2017-02-06 14:54:18 -08:00
delete_scheduler.cc Windows thread 2017-02-06 14:54:18 -08:00
delete_scheduler.h Windows thread 2017-02-06 14:54:18 -08:00
dynamic_bloom_test.cc Windows thread 2017-02-06 14:54:18 -08:00
dynamic_bloom.cc Updated all copyright headers to the new format. 2016-02-09 15:12:00 -08:00
dynamic_bloom.h Updated all copyright headers to the new format. 2016-02-09 15:12:00 -08:00
env_basic_test.cc Generalize Env registration framework 2017-01-25 16:09:14 -08:00
env_chroot.cc Support POSIX RandomRWFile 2016-09-13 12:08:22 -07:00
env_chroot.h Introduce chroot Env 2016-05-06 17:42:50 -07:00
env_hdfs.cc Return finer-granularity status from Env::GetChildren* 2016-12-12 12:54:13 -08:00
env_posix.cc Windows thread 2017-02-06 14:54:18 -08:00
env_test.cc EnvPosixTestWithParam should wait for all threads to finish 2017-01-25 15:54:13 -08:00
env.cc direct io write support 2016-12-22 13:09:19 -08:00
event_logger_test.cc Updated all copyright headers to the new format. 2016-02-09 15:12:00 -08:00
event_logger.cc Updated all copyright headers to the new format. 2016-02-09 15:12:00 -08:00
event_logger.h Updated all copyright headers to the new format. 2016-02-09 15:12:00 -08:00
fault_injection_test_env.cc Flush job should release reference current version if sync log failed 2017-01-19 23:09:15 -08:00
fault_injection_test_env.h [rocksdb] Recovery path sequence miscount fix 2016-05-10 14:06:07 -07:00
file_reader_writer_test.cc change UseDirectIO() to use_direct_io() 2017-01-13 12:09:15 -08:00
file_reader_writer.cc change UseDirectIO() to use_direct_io() 2017-01-13 12:09:15 -08:00
file_reader_writer.h change UseDirectIO() to use_direct_io() 2017-01-13 12:09:15 -08:00
file_util.cc Always fsync the file after file copying 2016-12-28 19:09:16 -08:00
file_util.h Always fsync the file after file copying 2016-12-28 19:09:16 -08:00
filelock_test.cc Updated all copyright headers to the new format. 2016-02-09 15:12:00 -08:00
filter_policy.cc Updated all copyright headers to the new format. 2016-02-09 15:12:00 -08:00
hash_map.h Use more efficient hash map for deadlock detection 2016-11-19 11:39:15 -08:00
hash.cc Fix travis (compile for clang < 3.9) 2016-12-01 10:09:22 -08:00
hash.h Optimize sequential insert into memtable - Part 1: Interface 2016-11-13 19:09:18 -08:00
heap_test.cc Updated all copyright headers to the new format. 2016-02-09 15:12:00 -08:00
heap.h Cache heap::downheap() root comparison (optimize heap cmp call) 2016-12-01 13:39:14 -08:00
histogram_test.cc Fix Build Error 2016-03-11 22:56:25 -08:00
histogram_windowing.cc Fix in HistogramWindowingImpl 2016-03-17 14:28:41 -07:00
histogram_windowing.h Histogram Concurrency Improvement and Time-Windowing Support 2016-03-11 16:54:25 -08:00
histogram.cc util/histogram.cc: HistogramStat::toString buffer insufficient 2016-12-13 14:09:12 -08:00
histogram.h Histogram Concurrency Improvement and Time-Windowing Support 2016-03-11 16:54:25 -08:00
instrumented_mutex.cc DBSSTTest.RateLimitedDelete: not to use real clock 2016-10-24 10:35:00 -07:00
instrumented_mutex.h Updated all copyright headers to the new format. 2016-02-09 15:12:00 -08:00
io_posix.cc Fix OSX build break after the fallocate change 2017-02-02 10:39:11 -08:00
io_posix.h Fix OSX build break after the fallocate change 2017-02-02 10:39:11 -08:00
iostats_context_imp.h Updated all copyright headers to the new format. 2016-02-09 15:12:00 -08:00
iostats_context_test.cc IOStatsContext::ToString() add option to exclude zero counters 2016-02-23 10:26:24 -08:00
iostats_context.cc IOStatsContext::ToString() add option to exclude zero counters 2016-02-23 10:26:24 -08:00
kv_map.h Store internal keys in TombstoneMap 2016-11-09 15:09:18 -08:00
log_buffer.cc Updated all copyright headers to the new format. 2016-02-09 15:12:00 -08:00
log_buffer.h Updated all copyright headers to the new format. 2016-02-09 15:12:00 -08:00
log_write_bench.cc direct io write support 2016-12-22 13:09:19 -08:00
logging.cc util/logging.cc: buffer of insufficient size (gcc-7 -Werror=format-length) 2016-12-13 18:39:14 -08:00
logging.h Updated all copyright headers to the new format. 2016-02-09 15:12:00 -08:00
lru_cache_test.cc LRU cache mid-point insertion 2016-08-19 16:43:31 -07:00
lru_cache.cc NewLRUCache() to pick number of shard bits based on capacity if not given 2017-01-27 06:39:12 -08:00
lru_cache.h Allow incrementing refcount on cache handles 2017-01-10 16:54:20 -08:00
memenv.cc direct io write support 2016-12-22 13:09:19 -08:00
memory_usage.h Report memory usage by memtable insert hints map. 2016-11-15 20:24:13 -08:00
mock_env_test.cc Create env_basic_test [pluggable Env part 2] 2016-06-03 15:13:03 -07:00
mock_env.cc direct io write support 2016-12-22 13:09:19 -08:00
mock_env.h Updated all copyright headers to the new format. 2016-02-09 15:12:00 -08:00
murmurhash.cc Gcc 7 fallthrough 2016-12-14 19:24:25 -08:00
murmurhash.h Updated all copyright headers to the new format. 2016-02-09 15:12:00 -08:00
mutexlock.h Persistent Read Cache (6) Persistent cache tier implentation - File layout 2016-07-19 12:01:46 -07:00
options_helper.cc Add GetSupportedCompressions() convenience function 2017-01-06 11:24:14 -08:00
options_helper.h direct io write support 2016-12-22 13:09:19 -08:00
options_parser.cc Remove function local statics that interfere with memory pooling (#1392) 2016-10-14 13:09:18 -07:00
options_parser.h Updated all copyright headers to the new format. 2016-02-09 15:12:00 -08:00
options_sanity_check.cc Updated all copyright headers to the new format. 2016-02-09 15:12:00 -08:00
options_sanity_check.h Updated all copyright headers to the new format. 2016-02-09 15:12:00 -08:00
options_settable_test.cc direct io write support 2016-12-22 13:09:19 -08:00
options_test.cc Change the default of delayed slowdown value to 16MB/s 2017-02-01 20:39:17 -08:00
options.cc Change the default of delayed slowdown value to 16MB/s 2017-02-01 20:39:17 -08:00
perf_context_imp.h fix ios build error 2016-02-17 20:22:40 +08:00
perf_context.cc Less linear search in DBIter::Seek() when keys are overwritten a lot 2016-11-28 10:24:11 -08:00
perf_level_imp.h Updated all copyright headers to the new format. 2016-02-09 15:12:00 -08:00
perf_level.cc Assert boundary checks for SetPerfLevel() 2016-06-01 09:07:09 -07:00
perf_step_timer.h Updated all copyright headers to the new format. 2016-02-09 15:12:00 -08:00
posix_logger.h Show More DB Stats in info logs 2016-10-29 16:09:18 -07:00
random.cc Gcc 7 error expansion to defined 2016-12-13 18:39:14 -08:00
random.h Fixes warnings and ensure correct int behavior on 32-bit platforms. 2016-03-16 22:57:57 +01:00
rate_limiter_test.cc Relax the acceptable bias RateLimiterTest::Rate test be 25% 2016-10-13 14:26:12 -07:00
rate_limiter.cc fix rate limiter to avoid starvation 2016-07-01 00:16:29 -07:00
rate_limiter.h Handle overflow case of rate limiter's paramters 2016-05-27 16:15:28 -07:00
sharded_cache.cc NewLRUCache() to pick number of shard bits based on capacity if not given 2017-01-27 06:39:12 -08:00
sharded_cache.h NewLRUCache() to pick number of shard bits based on capacity if not given 2017-01-27 06:39:12 -08:00
slice_transform_test.cc Updated all copyright headers to the new format. 2016-02-09 15:12:00 -08:00
slice.cc Merge db/slice.cc into util/slice.cc 2016-06-10 16:37:36 -07:00
sst_file_manager_impl.cc fixed typo 2017-01-23 12:54:13 -08:00
sst_file_manager_impl.h Remove sst_file_manager option from LITE 2016-12-21 17:54:21 -08:00
statistics_test.cc Fix Statistics TickersNameMap miss match with Tickers enum 2016-07-25 16:05:50 -07:00
statistics.cc Fix deadlock when calling getMergedHistogram 2016-11-20 18:24:12 -08:00
statistics.h Add Statistics::getAndResetTickerCount(). 2016-10-11 10:54:11 -07:00
status_message.cc Add NoSpace subcode to IOError (#1320) 2016-09-07 12:37:45 -07:00
status.cc Fix rocksdb::Status::getState 2017-01-03 18:39:14 -08:00
stderr_logger.h Stderr info logger 2016-04-01 11:06:06 -07:00
stop_watch.h Use StopWatch to do statistic job in db_impl_add_file.cc 2016-08-02 14:53:29 -07:00
string_util.cc Updated all copyright headers to the new format. 2016-02-09 15:12:00 -08:00
string_util.h FreeBSD does not have std::to_string (#1190) 2016-06-29 07:35:17 -07:00
sync_point.cc gcc-7 requires include <functional> for std::function 2016-12-16 11:24:18 -08:00
sync_point.h gcc-7 requires include <functional> for std::function 2016-12-16 11:24:18 -08:00
testharness.cc Updated all copyright headers to the new format. 2016-02-09 15:12:00 -08:00
testharness.h Updated all copyright headers to the new format. 2016-02-09 15:12:00 -08:00
testutil.cc Revert "PinnableSlice" 2017-01-08 14:24:12 -08:00
testutil.h Support SST files with Global sequence numbers [reland] 2016-10-18 16:59:37 -07:00
thread_list_test.cc Gcc 7 error expansion to defined 2016-12-13 18:39:14 -08:00
thread_local_test.cc Windows thread 2017-02-06 14:54:18 -08:00
thread_local.cc Move ThreadLocal implementation into .cc 2017-02-02 14:09:12 -08:00
thread_local.h Move ThreadLocal implementation into .cc 2017-02-02 14:09:12 -08:00
thread_operation.h Gcc 7 error expansion to defined 2016-12-13 18:39:14 -08:00
thread_status_impl.cc Gcc 7 error expansion to defined 2016-12-13 18:39:14 -08:00
thread_status_updater_debug.cc Gcc 7 error expansion to defined 2016-12-13 18:39:14 -08:00
thread_status_updater.cc Gcc 7 error expansion to defined 2016-12-13 18:39:14 -08:00
thread_status_updater.h Gcc 7 error expansion to defined 2016-12-13 18:39:14 -08:00
thread_status_util_debug.cc Updated all copyright headers to the new format. 2016-02-09 15:12:00 -08:00
thread_status_util.cc Gcc 7 error expansion to defined 2016-12-13 18:39:14 -08:00
thread_status_util.h Gcc 7 error expansion to defined 2016-12-13 18:39:14 -08:00
threadpool_imp.cc Windows thread 2017-02-06 14:54:18 -08:00
threadpool_imp.h Windows thread 2017-02-06 14:54:18 -08:00
transaction_test_util.cc Gcc-7 buffer size insufficient 2016-12-14 19:24:26 -08:00
transaction_test_util.h Fix AppVeyor build error 2016-03-15 10:57:33 -07:00
xfunc.cc Updated all copyright headers to the new format. 2016-02-09 15:12:00 -08:00
xfunc.h gcc-7 requires include <functional> for std::function 2016-12-16 11:24:18 -08:00
xxhash.cc Enable MS Warning C4804 : unsafe use of type 'bool' in operation 2015-11-18 16:23:19 -08:00
xxhash.h Prevent xxhash symbols from polluting global namespace 2015-03-12 12:07:10 -07:00