Skip to content

Commit 8795750

Browse files
committed
Used pthread name functions returning result for FreeBSD and DragonFly
1 parent 45089ec commit 8795750

1 file changed

Lines changed: 13 additions & 11 deletions

File tree

‎library/std/src/sys/pal/unix/thread.rs‎

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -129,25 +129,27 @@ impl Thread {
129129
}
130130
}
131131

132-
#[cfg(target_os = "linux")]
132+
#[cfg(any(target_os = "linux", target_os = "freebsd", target_os = "dragonfly"))]
133133
pubfnset_name(name:&CStr){
134-
constTASK_COMM_LEN:usize = 16;
135-
136134
unsafe{
137-
// Available since glibc 2.12, musl 1.1.16, and uClibc 1.0.20.
138-
let name = truncate_cstr::<{TASK_COMM_LEN}>(name);
135+
cfg_if::cfg_if! {
136+
if #[cfg(target_os = "linux")]{
137+
// Linux limits the allowed length of the name.
138+
constTASK_COMM_LEN:usize = 16;
139+
let name = truncate_cstr::<{TASK_COMM_LEN}>(name);
140+
} else {
141+
// FreeBSD and DragonFly BSD do not enforce length limits.
142+
}
143+
};
144+
// Available since glibc 2.12, musl 1.1.16, and uClibc 1.0.20 for Linux,
145+
// FreeBSD 12.2 and 13.0, and DragonFly BSD 6.0.
139146
let res = libc::pthread_setname_np(libc::pthread_self(), name.as_ptr());
140147
// We have no good way of propagating errors here, but in debug-builds let's check that this actually worked.
141148
debug_assert_eq!(res,0);
142149
}
143150
}
144151

145-
#[cfg(any(
146-
target_os = "freebsd",
147-
target_os = "dragonfly",
148-
target_os = "openbsd",
149-
target_os = "nuttx"
150-
))]
152+
#[cfg(any(target_os = "openbsd", target_os = "nuttx"))]
151153
pubfnset_name(name:&CStr){
152154
unsafe{
153155
libc::pthread_set_name_np(libc::pthread_self(), name.as_ptr());

0 commit comments

Comments
 (0)