Added calls to flock() in object functions.

This commit is contained in:
default 2022-11-23 15:34:07 +01:00
parent eb2cde3b6d
commit 8c44c885e1

7
data.c
View file

@ -10,8 +10,9 @@
#include "snac.h" #include "snac.h"
#include <time.h> #include <time.h>
#include <glob.h>
#include <sys/stat.h> #include <sys/stat.h>
#include <sys/file.h>
#include <fcntl.h>
double db_layout = 2.1; double db_layout = 2.1;
@ -218,6 +219,8 @@ int object_get(const char *id, d_char **obj, const char *type)
FILE *f; FILE *f;
if ((f = fopen(fn, "r")) != NULL) { if ((f = fopen(fn, "r")) != NULL) {
flock(fileno(f), LOCK_SH);
xs *j = xs_readall(f); xs *j = xs_readall(f);
fclose(f); fclose(f);
@ -252,6 +255,8 @@ int object_add(const char *id, d_char *obj)
FILE *f; FILE *f;
if ((f = fopen(fn, "w")) != NULL) { if ((f = fopen(fn, "w")) != NULL) {
flock(fileno(f), LOCK_EX);
xs *j = xs_json_dumps_pp(obj, 4); xs *j = xs_json_dumps_pp(obj, 4);
fwrite(j, strlen(j), 1, f); fwrite(j, strlen(j), 1, f);