mirror of
https://github.com/facebook/sapling.git
synced 2024-10-09 00:14:35 +03:00
d910ab6594
Summary: After performing the dumb merge of EdenMount and MountPoint in the prior commit, this one tidies up the state tracking and the interface by which clients of the object can be notified of state changes. I've introduced two Promises; the first of these can be used to wait for the fuse mount to come up or error out. It logically replaces the cond wait in the `start` method and is exposed to the caller as a Future, allowing them to wait and react to the outcome. The second of the promises is associated with the fuse thread pool winding down. The attached future can be extracted and used by the client of the EdenMount class. This future yields the fuse device descriptor which we can then choose to pass on during graceful restart or simply close. In the current integration, since we ignore the result of that future, the handle is implicitly closed. These promises allow us to remove the reference cycle that we had with the `onStop` function and to potentially make the mount/unmount sequence more async. Reviewed By: bolinfest Differential Revision: D5778214 fbshipit-source-id: 00b293009b7251ddd8bfb10795a115188e97aa3a |
||
---|---|---|
.. | ||
test | ||
CheckoutAction.cpp | ||
CheckoutAction.h | ||
CheckoutContext.cpp | ||
CheckoutContext.h | ||
DeferredDiffEntry.cpp | ||
DeferredDiffEntry.h | ||
DiffContext.h | ||
Dirstate.cpp | ||
Dirstate.h | ||
DirstatePersistence.cpp | ||
DirstatePersistence.h | ||
EdenDispatcher.cpp | ||
EdenDispatcher.h | ||
EdenMount.cpp | ||
EdenMount.h | ||
FileHandle.cpp | ||
FileHandle.h | ||
FileInode.cpp | ||
FileInode.h | ||
hgdirstate.thrift | ||
InodeBase.cpp | ||
InodeBase.h | ||
InodeDiffCallback.h | ||
InodeError.cpp | ||
InodeError.h | ||
InodeMap.cpp | ||
InodeMap.h | ||
InodePtr-defs.h | ||
InodePtr.cpp | ||
InodePtr.h | ||
InodePtrFwd.h | ||
Overlay.cpp | ||
Overlay.h | ||
overlay.thrift | ||
ParentInodeInfo.h | ||
TARGETS | ||
TreeInode.cpp | ||
TreeInode.h | ||
TreeInodeDirHandle.cpp | ||
TreeInodeDirHandle.h |