debug: properly set thread names on macOS

This commit is contained in:
Qwerasd
2025-04-09 15:26:28 -06:00
parent 77c050c156
commit 7cfc906c60
6 changed files with 41 additions and 0 deletions

View File

@@ -16,6 +16,7 @@ const ArenaAllocator = std.heap.ArenaAllocator;
const builtin = @import("builtin");
const xev = @import("../global.zig").xev;
const crash = @import("../crash/main.zig");
const internal_os = @import("../os/main.zig");
const termio = @import("../termio.zig");
const renderer = @import("../renderer.zig");
const BlockingQueue = @import("../datastruct/main.zig").BlockingQueue;
@@ -202,6 +203,13 @@ pub fn threadMain(self: *Thread, io: *termio.Termio) void {
fn threadMain_(self: *Thread, io: *termio.Termio) !void {
defer log.debug("IO thread exited", .{});
// Right now, on Darwin, `std.Thread.setName` can only name the current
// thread, and we have no way to get the current thread from within it,
// so instead we use this code to name the thread instead.
if (builtin.os.tag.isDarwin()) {
internal_os.macos.pthread_setname_np(&"io".*);
}
// Setup our crash metadata
crash.sentry.thread_state = .{
.type = .io,