sapling/eden/fs/service
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
..
oss add an EdenServer::getMainEventBase() method 2017-08-31 19:05:23 -07:00
__init__.py Add integration test for rebasing in Hg. 2017-07-27 17:24:01 -07:00
client.py use .eden/socket in hg extensions 2017-04-06 10:52:06 -07:00
DEFS avoid multiple builds of the eden server library 2017-04-14 11:39:02 -07:00
eden.thrift Diagnostic tool to report Stat information of EdenFs 2017-08-25 12:49:35 -07:00
EdenError.cpp update all copyright statements to "2016-present" 2017-01-20 22:03:02 -08:00
EdenError.h update all copyright statements to "2016-present" 2017-01-20 22:03:02 -08:00
EdenServer.cpp unify state and fuseStatus in EdenMount 2017-09-08 19:25:34 -07:00
EdenServer.h add an EdenServer::getMainEventBase() method 2017-08-31 19:05:23 -07:00
EdenServiceHandler.cpp dumb merge of MountPoint into EdenMount 2017-09-08 19:25:34 -07:00
EdenServiceHandler.h EdenServiceHandler::mountImpl returns a Future 2017-09-06 13:04:54 -07:00
GlobNode.cpp fix crashes triggered by the new TreeInode::Entry checks 2017-07-26 13:21:13 -07:00
GlobNode.h move eden/utils and eden/fuse into eden/fs 2017-04-14 11:39:02 -07:00
main.cpp re-organize the fuse Channel and Session code 2017-09-08 19:25:34 -07:00
PrettyPrinters.cpp implement "hg status" using EdenMount::diff() 2017-03-30 21:35:00 -07:00
PrettyPrinters.h implement "hg status" using EdenMount::diff() 2017-03-30 21:35:00 -07:00
streamingeden.thrift implement eden->watchman subscriptions 2017-03-21 13:35:20 -07:00
StreamingSubscriber.cpp update logging statements to use folly logging APIs 2017-06-22 13:50:13 -07:00
StreamingSubscriber.h implement eden->watchman subscriptions 2017-03-21 13:35:20 -07:00
TARGETS Kill folly/experimental:experimental 2017-09-03 14:24:26 -07:00
ThriftUtil.h update the checkOutRevision() API to accept a BinaryHash 2017-04-06 17:50:43 -07:00