aboutsummaryrefslogtreecommitdiff
path: root/src/global.zig
diff options
context:
space:
mode:
authorGravatar Jarred Sumner <jarred@jarredsumner.com> 2021-12-24 20:44:25 -0800
committerGravatar Jarred Sumner <jarred@jarredsumner.com> 2021-12-24 20:44:25 -0800
commit143973e0311a1102ff2145ba32d5dc72a0a8cb28 (patch)
treeb7faa284e501c58b706dab6ffc3cabf98dec85bf /src/global.zig
parentbb5ad6e1adfd4f59044068a153c9d2b42448dfcc (diff)
downloadbun-143973e0311a1102ff2145ba32d5dc72a0a8cb28.tar.gz
bun-143973e0311a1102ff2145ba32d5dc72a0a8cb28.tar.zst
bun-143973e0311a1102ff2145ba32d5dc72a0a8cb28.zip
Fix rare crash when new thread is created, possibly only on musl
Diffstat (limited to 'src/global.zig')
-rw-r--r--src/global.zig13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/global.zig b/src/global.zig
index 08cc77fab..536b55be7 100644
--- a/src/global.zig
+++ b/src/global.zig
@@ -80,6 +80,19 @@ pub const Output = struct {
source = Source.init(stdout_stream, stderr_stream);
}
+ pub fn configureNamedThread(thread: std.Thread, name: stringZ) void {
+ if (source_set) return;
+ configureThread();
+
+ // On Linux, thread may be undefined
+ // Fortunately, we can use a different syscall that only affects the current thread
+ if (Environment.isLinux) {
+ _ = std.os.linux.prctl(std.os.PR_SET_NAME, @ptrToInt(name.ptr), 0, 0, 0);
+ } else {
+ thread.setName(name) catch {};
+ }
+ }
+
pub fn set(_source: *Source) void {
source = _source.*;
source_set = true;