std:🧵 adding get_name implementation for solaris/illumos.

THREAD_NAME_MAX is 32 (31 max + 1 for the null terminator).
This commit is contained in:
David Carlier 2024-04-01 10:01:21 +01:00
parent 7f84ede33d
commit 747d19326b
No known key found for this signature in database
GPG Key ID: CEF290BB40D2086B

View File

@ -225,13 +225,19 @@ pub fn set_name(_name: &CStr) {
// Newlib, Emscripten, and VxWorks have no way to set a thread name.
}
#[cfg(any(target_os = "linux", target_os = "freebsd", target_os = "netbsd",))]
#[cfg(any(
target_os = "linux",
target_os = "freebsd",
target_os = "netbsd",
target_os = "solaris",
target_os = "illumos"
))]
pub fn get_name() -> Option<CString> {
#[cfg(target_os = "linux")]
const TASK_COMM_LEN: usize = 16;
#[cfg(target_os = "freebsd")]
const TASK_COMM_LEN: usize = libc::MAXCOMLEN + 1;
#[cfg(target_os = "netbsd")]
#[cfg(any(target_os = "netbsd", target_os = "solaris", target_os = "illumos"))]
const TASK_COMM_LEN: usize = 32;
let mut name = vec![0u8; TASK_COMM_LEN];
let res = unsafe {
@ -282,7 +288,9 @@ pub fn get_name() -> Option<CString> {
target_os = "ios",
target_os = "tvos",
target_os = "watchos",
target_os = "haiku"
target_os = "haiku",
target_os = "solaris",
target_os = "illumos"
)))]
pub fn get_name() -> Option<CString> {
None