mirror of
https://github.com/facebook/sapling.git
synced 2024-10-08 07:49:11 +03:00
A Scalable, User-Friendly Source Control System.
fdecf19d91
Summary: This changes FuseChannel to fulfill the session complete future immediately in the thread where it finishes. This may occur inside a FUSE worker thread. It is now up to the caller to use `via()` if they want their callback to run in a separate thread. This simplifies the FuseChannel code and also addresses a crash that occurs in the unit tests sometimes: If the FuseChannel destructor is invoked without explicitly invoking the FuseChannel, it would schedule the session complete promise to be fulfilled in a separate EventBase thread. However, the promise may then have already been destroyed by the time it can run in the EventBase thread. There are still additional synchronization issues to fix in the FuseChannel tests, but this resolves one problem. Reviewed By: chadaustin Differential Revision: D7282001 fbshipit-source-id: be64d3ef6a0e664ed7a2cf93a549acc140184095 |
||
---|---|---|
common | ||
eden | ||
external | ||
.gitignore | ||
CONTRIBUTING.md | ||
getdeps.py | ||
LICENSE | ||
PATENTS | ||
README.md |
Eden
Eden is a project with several components, the most prominent of which is a virtual filesystem built using FUSE.
Caveat Emptor
Eden is still in early stages of development. We are making it available now because we plan to start making references to it from our other open source projects, such as Buck, Watchman, and Nuclide.
The version that we provide on GitHub does not build yet.
This is because the code is exported verbatim from an internal repository at Facebook, and not all of the scaffolding from our internal repository can be easily extracted. The key areas where we need to shore things up are:
- The reinterpretations of build macros in
DEFS
. - A process for including third-party dependencies (presumably via Git submodules) and wiring up the
external_deps
argument in the build macros to point to them. - Providing the toolchain needed to power the [undocumented]
thrift_library()
rule in Buck.
The goal is to get Eden building on both Linux and OS X, though Linux support is expected to come first.