Skip to content

Commit

Permalink
Rollup merge of #103596 - RalfJung:thread-setname, r=cuviper
Browse files Browse the repository at this point in the history
thread::set_name: debug-assert that things went well

r? `@cuviper`
  • Loading branch information
Yuki Okushi committed Oct 26, 2022
2 parents 77145c0 + d1132fb commit b4b3ff4
Showing 1 changed file with 10 additions and 6 deletions.
16 changes: 10 additions & 6 deletions library/std/src/sys/unix/thread.rs
Expand Up @@ -137,7 +137,9 @@ impl Thread {
unsafe {
// Available since glibc 2.12, musl 1.1.16, and uClibc 1.0.20.
let name = truncate_cstr(name, TASK_COMM_LEN);
libc::pthread_setname_np(libc::pthread_self(), name.as_ptr());
let res = libc::pthread_setname_np(libc::pthread_self(), name.as_ptr());
// We have no good way of propagating errors here, but in debug-builds let's check that this actually worked.
debug_assert_eq!(res, 0);
}
}

Expand All @@ -152,19 +154,22 @@ impl Thread {
pub fn set_name(name: &CStr) {
unsafe {
let name = truncate_cstr(name, libc::MAXTHREADNAMESIZE);
libc::pthread_setname_np(name.as_ptr());
let res = libc::pthread_setname_np(name.as_ptr());
// We have no good way of propagating errors here, but in debug-builds let's check that this actually worked.
debug_assert_eq!(res, 0);
}
}

#[cfg(target_os = "netbsd")]
pub fn set_name(name: &CStr) {
unsafe {
let cname = CStr::from_bytes_with_nul_unchecked(b"%s\0".as_slice());
libc::pthread_setname_np(
let res = libc::pthread_setname_np(
libc::pthread_self(),
cname.as_ptr(),
name.as_ptr() as *mut libc::c_void,
);
debug_assert_eq!(res, 0);
}
}

Expand All @@ -177,9 +182,8 @@ impl Thread {
}

if let Some(f) = pthread_setname_np.get() {
unsafe {
f(libc::pthread_self(), name.as_ptr());
}
let res = unsafe { f(libc::pthread_self(), name.as_ptr()) };
debug_assert_eq!(res, 0);
}
}

Expand Down

0 comments on commit b4b3ff4

Please sign in to comment.