sapling/eden/fs/fuse
Adam Simpkins fef4a43da7 restructure FuseChannel initialization and synchronization
Summary:
- Update FuseChannel::initializate() to not require an Executor.  Rather than
  performing initialization using the supplied Executor, it simply starts one
  worker thread first and performs initialization there.
- Change the API semantics slightly so that the session complete future is
  invoked only if initialization succeeds.  Previously the session complete
  future could be invoked if initialization failed as well.
- Replace the activeThreads counter with a stoppedThreads counter to determine
  when the session complete future should be invoked.  The previous
  activeThreads behavior was somewhat racy, since the activeThreads counter was
  incremented inside each worker thread, but most places that checked it did
  not wait to ensure that all worker threads had successfully incremented it
  yet.

Reviewed By: chadaustin

Differential Revision: D7243910

fbshipit-source-id: 93b3465509bd9bf6fa90ea097e70dac3193172f9
2018-03-13 13:29:03 -07:00
..
privhelper allow attaching to edenfs with non-root gdb 2018-03-07 23:11:48 -08:00
test restructure FuseChannel initialization and synchronization 2018-03-13 13:29:03 -07:00
BufVec.cpp allow returning the open file handle before the load/materialize completes 2017-12-05 11:21:26 -08:00
BufVec.h allow returning the open file handle before the load/materialize completes 2017-12-05 11:21:26 -08:00
DirHandle.h run clang-format across all C++ files 2017-11-03 16:02:03 -07:00
DirList.cpp Misc cleanup of cpp files in eden/fs/fuse/ 2018-01-17 13:41:19 -08:00
DirList.h run clang-format across all C++ files 2017-11-03 16:02:03 -07:00
Dispatcher.cpp clean up fuse init processing 2018-01-31 15:08:42 -08:00
Dispatcher.h clean up fuse init processing 2018-01-31 15:08:42 -08:00
EdenStats.cpp run clang-format across all C++ files 2017-11-03 16:02:03 -07:00
EdenStats.h run clang-format across all C++ files 2017-11-03 16:02:03 -07:00
FileHandle.cpp run clang-format across all C++ files 2017-11-03 16:02:03 -07:00
FileHandle.h run clang-format across all C++ files 2017-11-03 16:02:03 -07:00
FileHandleBase.cpp run clang-format across all C++ files 2017-11-03 16:02:03 -07:00
FileHandleBase.h remove dep on libfuse 2018-01-02 16:36:16 -08:00
FileHandleMap.cpp make it annoying to use InodeNumber as an integer 2018-02-27 12:44:41 -08:00
FileHandleMap.h open file handles now survive graceful restart 2018-01-09 22:23:11 -08:00
FuseChannel.cpp restructure FuseChannel initialization and synchronization 2018-03-13 13:29:03 -07:00
FuseChannel.h restructure FuseChannel initialization and synchronization 2018-03-13 13:29:03 -07:00
FuseTypes.cpp make it annoying to use InodeNumber as an integer 2018-02-27 12:44:41 -08:00
FuseTypes.h use assert() rather than DCHECK_NE() in the InodeNumber constructor 2018-02-28 11:20:24 -08:00
handlemap.thrift move InodeMap serialization to new takeover.thrift file 2018-01-17 11:51:30 -08:00
PollHandle.cpp run clang-format across all C++ files 2017-11-03 16:02:03 -07:00
PollHandle.h Added joinAndNormalize to PathFuncs with test plus minor cleanup. 2018-01-04 10:11:38 -08:00
RequestData.cpp run clang-format across eden 2018-01-26 11:20:31 -08:00
RequestData.h re-enable FUSE_INTERRUPT support 2018-01-02 16:36:16 -08:00