aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorZyX <kp-pav@yandex.ru>2015-08-06 22:38:30 +0300
committerZyX <kp-pav@yandex.ru>2015-10-08 22:00:24 +0300
commit278de872f76cb617c969037468a832245615090f (patch)
treede07c015137d66c356765e48685016c011d0344c /src
parent21056bad57bc239d27639c087ed113f8e512cc76 (diff)
downloadrneovim-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.c8
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