aboutsummaryrefslogtreecommitdiffhomepage
path: root/README.md
diff options
context:
space:
mode:
authorGravatar ridiculousfish <corydoras@ridiculousfish.com>2014-05-21 11:02:17 -0700
committerGravatar ridiculousfish <corydoras@ridiculousfish.com>2014-05-21 11:02:17 -0700
commit451c97f35a4083413370bd2272adc2529e1e12eb (patch)
tree9301218c1f25387c69221c4983fae2ca77ccdd56 /README.md
parent3cbace98a76ba35af88f0a9234a7c6ebad10d68c (diff)
parent8a577a9d4d71dd5b37a0c643ac8f44713b95f000 (diff)
Merges changes to support running fish without fishd.
In the new mode (not yet enabled), universal variables are set by reading and writing the fishd file directly, with some file locking for synchronization. This enables forwards and backwards compatibility. However there is no compatibility with simultaneous edits. Changes may be lost if fishd and the new mechanisms both attempt writes. fishd is still enabled by default for now; it will be disabled in a future commit. You can opt into the new mechanism (disabling fishd) by setting the environment variable fish_use_fishd to 0 before starting fish. This cannot itself be a universal variable, because of bootstrapping: the value is needed to determine how we read universal variables in the first place. Universal variable change notifications (i.e. reacting immediately to live edits) are tricky. Checking for changes is simple and relatively inexpensive (just a stat()), but relying solely on that would require frequent wakeups, and show up in fs_usage. So how do we get change notifications into an fd that we can monitor via select()? We support a few strategies, expressed as universal_notifier_t::notifier_strategy_t. By default we use notifyd on OS X and a named pipe on Linux / everywhere else. This is also configurable at runtime via the fish_universal_notifier variable.
Diffstat (limited to 'README.md')
0 files changed, 0 insertions, 0 deletions