diff options
author | ZyX <kp-pav@yandex.ru> | 2015-08-06 22:38:30 +0300 |
---|---|---|
committer | ZyX <kp-pav@yandex.ru> | 2015-10-08 22:00:24 +0300 |
commit | 278de872f76cb617c969037468a832245615090f (patch) | |
tree | de07c015137d66c356765e48685016c011d0344c /src | |
parent | 21056bad57bc239d27639c087ed113f8e512cc76 (diff) | |
download | rneovim-278de872f76cb617c969037468a832245615090f.tar.gz rneovim-278de872f76cb617c969037468a832245615090f.tar.bz2 rneovim-278de872f76cb617c969037468a832245615090f.zip |
shada: Synchronize sd_writer file before closing
Diffstat (limited to 'src')
-rw-r--r-- | src/nvim/shada.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/src/nvim/shada.c b/src/nvim/shada.c index 3e9f9298ab..2ba0398541 100644 --- a/src/nvim/shada.c +++ b/src/nvim/shada.c @@ -687,7 +687,13 @@ static void close_sd_reader(ShaDaReadDef *const sd_reader) static void close_sd_writer(ShaDaWriteDef *const sd_writer) FUNC_ATTR_NONNULL_ALL { - close_file((int)(intptr_t) sd_writer->cookie); + const int fd = (int)(intptr_t) sd_writer->cookie; + if (fsync(fd) < 0) { + emsg2(_(SERR "System error while synchronizing ShaDa file: %s"), + strerror(errno)); + errno = 0; + } + close_file(fd); } /// Wrapper for opening file descriptors |