Auto merge of #123315 - devnexen:thread_get_name_solaris, r=ChrisDenton

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:
bors 2024-04-01 16:38:55 +00:00
commit a7e3b1c8c5

View File

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