diff --git a/README.md b/README.md index 7b2dcff608320cd4768b92be436dc19ceb4dbfdf..ca00752b05032c8f650850a9f546f711e7edc894 100644 --- a/README.md +++ b/README.md @@ -55,7 +55,7 @@ Any custom backend may also be used that defines the following functions: - `pub fn init() !void` - `pub fn deinit() void` -- `pub fn init_thread() !void` +- `pub fn init_thread(dir: std.fs.Dir) !void` - `pub fn deinit_thread() void` - `pub inline fn trace_begin(ctx: tracer.Ctx, comptime ifmt: []const u8, iargs: anytype) void` - `pub inline fn trace_end(ctx: tracer.Ctx) void` diff --git a/src/chrome.zig b/src/chrome.zig index b8bd32b0e72228ca8d93e092c7b07fef18411288..8ad286fb92902b5a9f632590bf17f7b5abdeace7 100644 --- a/src/chrome.zig +++ b/src/chrome.zig @@ -19,11 +19,11 @@ pub fn deinit() void { // } -pub fn init_thread() !void { +pub fn init_thread(dir: std.fs.Dir) !void { tid = std.os.linux.gettid(); - path = try std.fmt.allocPrint(alloc, "/data/trace.{d}.{d}.chrome.json", .{ pid, tid }); - file = try std.fs.cwd().createFile(path, .{}); + path = try std.fmt.allocPrint(alloc, "trace.{d}.{d}.chrome.json", .{ pid, tid }); + file = try dir.createFile(path, .{}); buffered_writer = std.io.bufferedWriter(file.writer()); try buffered_writer.writer().writeAll("[\n"); diff --git a/src/log.zig b/src/log.zig index 056529e536cfcb36f0a2de9e762d2ddd49eb2229..dad5459b769347bf9589887b4f9753e773c62271 100644 --- a/src/log.zig +++ b/src/log.zig @@ -6,7 +6,9 @@ pub fn init() !void {} pub fn deinit() void {} -pub fn init_thread() !void {} +pub fn init_thread(dir: std.fs.Dir) !void { + _ = dir; +} pub fn deinit_thread() void {} diff --git a/src/main.zig b/src/main.zig index 7c9ac56c20fbfc3b3350992db65e9653586deda4..78dc47ea672ac67db7abd7d3c475eca367239aaa 100644 --- a/src/main.zig +++ b/src/main.zig @@ -17,7 +17,7 @@ pub fn main() !void { // main loop var go = false; while (go) { - try tracer.init_thread(); + try tracer.init_thread(std.fs.cwd()); defer tracer.deinit_thread(); handler(); diff --git a/src/mod.zig b/src/mod.zig index f4674b0b6ec79a4e2e39617b15c58eb8b105d6cf..e8b62566bfef61074737bb58fa4bb72f33dc1834 100644 --- a/src/mod.zig +++ b/src/mod.zig @@ -17,8 +17,8 @@ pub fn deinit() void { impl.deinit(); } -pub fn init_thread() !void { - try impl.init_thread(); +pub fn init_thread(dir: ?std.fs.Dir) !void { + try impl.init_thread(dir orelse std.fs.cwd()); started = true; } diff --git a/src/none.zig b/src/none.zig index 29ef21951d60822d6bd22926aebe5f7b9f656c96..355ad7981015ac088025e564702ddb4165134ec7 100644 --- a/src/none.zig +++ b/src/none.zig @@ -6,7 +6,9 @@ pub fn init() !void {} pub fn deinit() void {} -pub fn init_thread() !void {} +pub fn init_thread(dir: std.fs.Dir) !void { + _ = dir; +} pub fn deinit_thread() void {} diff --git a/src/spall.zig b/src/spall.zig index fe48e99b0888ac949667aa57038dac9a542043b0..65a4f7e82569b3cbadc833822aa1bad262b0dbb2 100644 --- a/src/spall.zig +++ b/src/spall.zig @@ -19,11 +19,11 @@ pub fn deinit() void { // } -pub fn init_thread() !void { +pub fn init_thread(dir: std.fs.Dir) !void { tid = std.os.linux.gettid(); - path = try std.fmt.allocPrint(alloc, "/data/trace.{d}.{d}.spall", .{ pid, tid }); - file = try std.fs.cwd().createFile(path, .{}); + path = try std.fmt.allocPrint(alloc, "{d}.{d}.spall", .{ pid, tid }); + file = try dir.createFile(path, .{}); buffered_writer = std.io.bufferedWriter(file.writer()); try buffered_writer.writer().writeStruct(Header{});