mirror of
https://github.com/facebook/sapling.git
synced 2024-10-10 08:47:12 +03:00
76409f59b7
Summary: The communication protocol between edenfs and watchman is that edenfs advertises that "something in the mount has changed!" and it's up to watchman to call getFilesChangedSince or getCurrentJournalPosition to inspect what has changed. This diff avoids redundantly notifying "something in the mount has changed!" between the initial notification and actually reading the journal contents. This way, a Watchman subscription cannot (*) fall behind, and memory usage stays approximately constant during heavy write traffic. Hopefully, this will prevent the kernel from thinking the edenfs mount is a slow IO device under high memory pressure. * Technically, if there were a multitude of subscribeStreamTemporary streams, and all but one was not calling getFilesChangedSince, it's possible that notifications could back up on the stuck subscriptions. Reviewed By: wez Differential Revision: D24090247 fbshipit-source-id: 6561c13e847b749c093adab75250df474d3210f9 |
||
---|---|---|
.. | ||
test | ||
CMakeLists.txt | ||
Journal.cpp | ||
Journal.h | ||
JournalDelta.cpp | ||
JournalDelta.h |