Skip to content

Commit

Permalink
Fix set_name in thread mod for NuttX
Browse files Browse the repository at this point in the history
Replace `pthread_set_name_np` with `pthread_setname_np` for NuttX in the `set_name` function,
this change aligns the implementation with the correct API available on NuttX

This patch ensures thread naming works correctly on NuttX platforms.

Signed-off-by: Huang Qi <huangqi3@xiaomi.com>
  • Loading branch information
no1wudi committed Jan 24, 2025
1 parent 061ee95 commit e170c9d
Showing 1 changed file with 8 additions and 3 deletions.
11 changes: 8 additions & 3 deletions library/std/src/sys/pal/unix/thread.rs
Original file line number Diff line number Diff line change
Expand Up @@ -130,7 +130,12 @@ impl Thread {
}
}

#[cfg(any(target_os = "linux", target_os = "freebsd", target_os = "dragonfly"))]
#[cfg(any(
target_os = "linux",
target_os = "freebsd",
target_os = "dragonfly",
target_os = "nuttx"
))]
pub fn set_name(name: &CStr) {
unsafe {
cfg_if::cfg_if! {
Expand All @@ -139,7 +144,7 @@ impl Thread {
const TASK_COMM_LEN: usize = 16;
let name = truncate_cstr::<{ TASK_COMM_LEN }>(name);
} else {
// FreeBSD and DragonFly BSD do not enforce length limits.
// FreeBSD, DragonFly, FreeBSD and NuttX do not enforce length limits.
}
};
// Available since glibc 2.12, musl 1.1.16, and uClibc 1.0.20 for Linux,
Expand All @@ -150,7 +155,7 @@ impl Thread {
}
}

#[cfg(any(target_os = "openbsd", target_os = "nuttx"))]
#[cfg(target_os = "openbsd")]
pub fn set_name(name: &CStr) {
unsafe {
libc::pthread_set_name_np(libc::pthread_self(), name.as_ptr());
Expand Down

0 comments on commit e170c9d

Please sign in to comment.