aboutsummaryrefslogtreecommitdiff
path: root/src/storage/user.zig
diff options
context:
space:
mode:
authorNathan Reiner <nathan@nathanreiner.xyz>2025-11-17 09:57:09 +0100
committerNathan Reiner <nathan@nathanreiner.xyz>2025-11-17 09:57:09 +0100
commite95cf5c7b6a08eb560763d5167fbddc1c2117bcc (patch)
tree2f7815c9f39328fcaced2113de727f63e4837fa3 /src/storage/user.zig
parent0016aaa197697ec5ff38dfb3f63ac8b6f74b48e0 (diff)
add file uploading and multi-threading
Diffstat (limited to 'src/storage/user.zig')
-rw-r--r--src/storage/user.zig9
1 files changed, 6 insertions, 3 deletions
diff --git a/src/storage/user.zig b/src/storage/user.zig
index 4170fd1..d5260fe 100644
--- a/src/storage/user.zig
+++ b/src/storage/user.zig
@@ -58,7 +58,7 @@ pub fn open(
var dir = try user_dir.openDir(name, .{});
errdefer dir.close();
- const file = try dir.openFile("info.json", .{});
+ const file = try dir.openFile("info.json", .{ .lock = .shared });
defer file.close();
const content = try file.readToEndAlloc(allocator, std.math.maxInt(usize));
@@ -91,7 +91,7 @@ pub fn new(
var dir = try user_dir.openDir(name, .{});
errdefer dir.close();
- var file = try dir.createFile("info.json", .{});
+ var file = try dir.createFile("info.json", .{ .lock = .exclusive });
file.close();
const hash_buf = try allocator.alloc(u8, 256);
@@ -124,7 +124,10 @@ pub fn new(
}
pub fn sync(self: *Self) !void {
- const file = try self.dir.openFile("info.json", .{ .mode = .write_only });
+ const file = try self.dir.openFile("info.json", .{
+ .mode = .write_only,
+ .lock = .exclusive,
+ });
defer file.close();
var buffer: [1024]u8 = undefined;