@@ -30,7 +30,10 @@ max_file_size: usize = 1_000_000,
30
30
31
31
next_commit_id : u64 = 1 ,
32
32
33
- pub fn init (allocator : std.mem.Allocator , dir : std.fs.Dir ) Self {
33
+ pub fn init (allocator : std.mem.Allocator , parent_dir : std.fs.Dir ) ! Self {
34
+ var dir = try parent_dir .makeOpenPath ("oplog" , .{ .iterate = true });
35
+ errdefer dir .close ();
36
+
34
37
return Self {
35
38
.allocator = allocator ,
36
39
.dir = dir ,
@@ -47,6 +50,8 @@ pub fn deinit(self: *Self) void {
47
50
self .closeCurrentFile ();
48
51
49
52
self .files .deinit ();
53
+
54
+ self .dir .close ();
50
55
}
51
56
52
57
pub fn open (self : * Self , first_commit_id : u64 , receiver : anytype , ctx : anytype ) ! void {
@@ -228,13 +233,10 @@ pub fn write(self: *Self, changes: []const Change) !u64 {
228
233
}
229
234
230
235
test "write entries" {
231
- var tmpDir = std .testing .tmpDir (.{});
232
- defer tmpDir .cleanup ();
233
-
234
- var oplogDir = try tmpDir .dir .makeOpenPath ("oplog" , .{ .iterate = true });
235
- defer oplogDir .close ();
236
+ var tmp_dir = std .testing .tmpDir (.{});
237
+ defer tmp_dir .cleanup ();
236
238
237
- var oplog = Self .init (std .testing .allocator , oplogDir );
239
+ var oplog = try Self .init (std .testing .allocator , tmp_dir . dir );
238
240
defer oplog .deinit ();
239
241
240
242
const Updater = struct {
@@ -256,7 +258,7 @@ test "write entries" {
256
258
257
259
_ = try oplog .write (& changes );
258
260
259
- var file = try oplogDir . openFile ("0000000000000001.xlog" , .{});
261
+ var file = try tmp_dir . dir . openFile ("oplog/ 0000000000000001.xlog" , .{});
260
262
defer file .close ();
261
263
262
264
var arena = std .heap .ArenaAllocator .init (std .testing .allocator );
0 commit comments