rocksdb/port
Dmitri Smirnov fe608e32ab Fix a race condition in WindowsThread (port::Thread)
Summary:
Fix a race condition when we create a thread and immediately destroy
 This case should be supported.
  What happens is that the thread function needs the Data instance
  to actually run but has no shared ownership and must rely on the
  WindowsThread instance to continue existing.
  To address this we change unique_ptr to shared_ptr and then
  acquire an additional refcount for the threadproc which destroys it
  just before the thread exit.
  We choose to allocate shared_ptr instance on the heap as this allows
  the original thread to continue w/o waiting for the new thread to start
  running.
Closes https://github.com/facebook/rocksdb/pull/3240

Differential Revision: D6511324

Pulled By: yiwu-arbug

fbshipit-source-id: 4633ff7996daf4d287a9fe34f60c1dd28cf4ff36
2017-12-07 13:42:53 -08:00
..
win Fix a race condition in WindowsThread (port::Thread) 2017-12-07 13:42:53 -08:00
dirent.h Change RocksDB License 2017-07-15 16:11:23 -07:00
likely.h Change RocksDB License 2017-07-15 16:11:23 -07:00
port.h Change RocksDB License 2017-07-15 16:11:23 -07:00
port_example.h Change RocksDB License 2017-07-15 16:11:23 -07:00
port_posix.cc Not using aligned_alloc with gcc4 + asan 2017-08-29 21:56:02 -07:00
port_posix.h LRUCacheShard cache line size alignment 2017-07-24 10:54:37 -07:00
README reverting disastrous MOE commit, returning to r21 2011-04-19 23:11:15 +00:00
stack_trace.cc Revert "comment out unused parameters" 2017-07-21 18:26:26 -07:00
stack_trace.h Change RocksDB License 2017-07-15 16:11:23 -07:00
sys_time.h Change RocksDB License 2017-07-15 16:11:23 -07:00
util_logger.h Change RocksDB License 2017-07-15 16:11:23 -07:00
xpress.h Change RocksDB License 2017-07-15 16:11:23 -07:00

This directory contains interfaces and implementations that isolate the
rest of the package from platform details.

Code in the rest of the package includes "port.h" from this directory.
"port.h" in turn includes a platform specific "port_<platform>.h" file
that provides the platform specific implementation.

See port_posix.h for an example of what must be provided in a platform
specific header file.