summaryrefslogtreecommitdiff
path: root/src/key-value-store/database/kissdb.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/key-value-store/database/kissdb.c')
-rw-r--r--src/key-value-store/database/kissdb.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/key-value-store/database/kissdb.c b/src/key-value-store/database/kissdb.c
index 63088f8..98df052 100644
--- a/src/key-value-store/database/kissdb.c
+++ b/src/key-value-store/database/kissdb.c
@@ -623,6 +623,7 @@ int KISSDB_close(KISSDB* db)
//unmap shared hashtables
munmap(db->hashTables, db->htMappedSize);
db->hashTables = NULL;
+
//close shared memory for hashtables
if( kdbShmemClose(db->htFd, db->htName) == Kdb_false)
{
@@ -662,8 +663,15 @@ int KISSDB_close(KISSDB* db)
free(db->cacheName); //free memory for name obtained by kdbGetShmName() function
db->cacheName = NULL;
}
+
if( db->fd)
{
+ // sync data to non volatile memory device
+#if USE_FSYNC
+ fsync(db->fd);
+#else
+ fdatasync(db->fd);
+#endif
close(db->fd);
db->fd = 0;
}