• Show log

    Commit

  • Hash : 3e1c137a
    Author : Patrick Steinhardt
    Date : 2019-06-27T08:24:21

    config_file: move refresh into `write` function
    
    We are quite lazy in how we refresh our config file backend when
    updating any of its keys: instead of just updating our in-memory
    representation of the keys, we just discard the old set of keys
    and then re-read the config file contents from disk. This refresh
    currently happens separately at every callsite of `config_write`,
    but it is clear that we _always_ want to refresh if we have
    written the config file to disk. If we didn't, then we'd run
    around with an outdated config file backend that does not
    represent what we have on disk.
    
    By moving the refresh into `config_write`, we are also able to
    optimize the case where the config file is currently locked.
    Before, we would've tried to re-read the file even if we have
    only updated its cached contents without touching the on-disk
    file. Thus we'd have unnecessarily stat'd the file, even though
    we know that it shouldn't have been modified in the meantime due
    to its lock.