sapling/eden/fs/inodes
Wez Furlong d910ab6594 unify state and fuseStatus in EdenMount
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
2017-09-08 19:25:34 -07:00
..
test dumb merge of MountPoint into EdenMount 2017-09-08 19:25:34 -07:00
CheckoutAction.cpp update logging statements to use folly logging APIs 2017-06-22 13:50:13 -07:00
CheckoutAction.h implement removing directories during checkout 2017-03-17 17:13:20 -07:00
CheckoutContext.cpp Adding lastCheckoutTime to EdenMount and initializing timestamps of FileInode with lastCheckoutTime 2017-07-27 11:52:31 -07:00
CheckoutContext.h Adding lastCheckoutTime to EdenMount and initializing timestamps of FileInode with lastCheckoutTime 2017-07-27 11:52:31 -07:00
DeferredDiffEntry.cpp avoid loading blob/tree metadata during hg status 2017-09-07 14:50:42 -07:00
DeferredDiffEntry.h minor clean up to GitIgnoreStack handling 2017-04-28 19:21:34 -07:00
DiffContext.h minor clean up to GitIgnoreStack handling 2017-04-28 19:21:34 -07:00
Dirstate.cpp dumb merge of MountPoint into EdenMount 2017-09-08 19:25:34 -07:00
Dirstate.h Add new Thrift API: hgClearDirstate(mountPoint) 2017-08-22 16:50:24 -07:00
DirstatePersistence.cpp Reimplement dirstate used by Eden's Hg extension as a subclass of Hg's dirstate. 2017-05-26 12:05:29 -07:00
DirstatePersistence.h Reimplement dirstate used by Eden's Hg extension as a subclass of Hg's dirstate. 2017-05-26 12:05:29 -07:00
EdenDispatcher.cpp dumb merge of MountPoint into EdenMount 2017-09-08 19:25:34 -07:00
EdenDispatcher.h Dispatcher no longer needs to know about MountPoint 2017-09-08 19:25:34 -07:00
EdenMount.cpp unify state and fuseStatus in EdenMount 2017-09-08 19:25:34 -07:00
EdenMount.h unify state and fuseStatus in EdenMount 2017-09-08 19:25:34 -07:00
FileHandle.cpp add code to serialize FileHandleMap 2017-08-30 19:20:23 -07:00
FileHandle.h add code to serialize FileHandleMap 2017-08-30 19:20:23 -07:00
FileInode.cpp dumb merge of MountPoint into EdenMount 2017-09-08 19:25:34 -07:00
FileInode.h remove dead FileData references 2017-08-30 19:20:23 -07:00
hgdirstate.thrift Reimplement dirstate used by Eden's Hg extension as a subclass of Hg's dirstate. 2017-05-26 12:05:29 -07:00
InodeBase.cpp dumb merge of MountPoint into EdenMount 2017-09-08 19:25:34 -07:00
InodeBase.h implementing TreeInode::setInodeAttr 2017-08-14 13:36:37 -07:00
InodeDiffCallback.h move eden/utils and eden/fuse into eden/fs 2017-04-14 11:39:02 -07:00
InodeError.cpp update all copyright statements to "2016-present" 2017-01-20 22:03:02 -08:00
InodeError.h move eden/utils and eden/fuse into eden/fs 2017-04-14 11:39:02 -07:00
InodeMap.cpp Add test to verify that eden debug getpath indicates when inodes are unloaded 2017-08-25 08:34:31 -07:00
InodeMap.h Diagnostic tool to report Stat information of EdenFs 2017-08-25 12:49:35 -07:00
InodePtr-defs.h update all copyright statements to "2016-present" 2017-01-20 22:03:02 -08:00
InodePtr.cpp simplify InodePtr classes 2017-04-06 13:20:01 -07:00
InodePtr.h simplify InodePtr classes 2017-04-06 13:20:01 -07:00
InodePtrFwd.h simplify InodePtr classes 2017-04-06 13:20:01 -07:00
Overlay.cpp Wrapper for TimeStamps & helper function to set timestamps in setattr. 2017-08-11 11:36:07 -07:00
Overlay.h Wrapper for TimeStamps & helper function to set timestamps in setattr. 2017-08-11 11:36:07 -07:00
overlay.thrift fix issues updating TreeInode materialization status during checkout 2017-07-07 18:45:02 -07:00
ParentInodeInfo.h move eden/utils and eden/fuse into eden/fs 2017-04-14 11:39:02 -07:00
TARGETS dumb merge of MountPoint into EdenMount 2017-09-08 19:25:34 -07:00
TreeInode.cpp dumb merge of MountPoint into EdenMount 2017-09-08 19:25:34 -07:00
TreeInode.h dumb merge of MountPoint into EdenMount 2017-09-08 19:25:34 -07:00
TreeInodeDirHandle.cpp add code to serialize FileHandleMap 2017-08-30 19:20:23 -07:00
TreeInodeDirHandle.h add code to serialize FileHandleMap 2017-08-30 19:20:23 -07:00