about summary refs log tree commit diff
diff options
context:
space:
mode:
authorDavid Carlier <devnexen@gmail.com>2024-04-01 14:28:37 +0100
committerDavid Carlier <devnexen@gmail.com>2024-04-01 22:16:13 +0100
commitca36fe310e8970a66461ff7fc8496a76c75b70ed (patch)
tree4b05700bb8ca621a9ec1b259a40016640378cfcd
parent3d5528c287860b918e178a34f04ff903325571b3 (diff)
downloadrust-ca36fe310e8970a66461ff7fc8496a76c75b70ed.tar.gz
rust-ca36fe310e8970a66461ff7fc8496a76c75b70ed.zip
std::thread: set_name change for solaris/illumos.
truncate down to 32 (31 + 1) for solaris/illumos.
-rw-r--r--library/std/src/sys/pal/unix/thread.rs7
1 files changed, 6 insertions, 1 deletions
diff --git a/library/std/src/sys/pal/unix/thread.rs b/library/std/src/sys/pal/unix/thread.rs
index 77e31d802a3..5ac68050b95 100644
--- a/library/std/src/sys/pal/unix/thread.rs
+++ b/library/std/src/sys/pal/unix/thread.rs
@@ -182,8 +182,11 @@ impl Thread {
 
         if let Some(f) = pthread_setname_np.get() {
             #[cfg(target_os = "nto")]
-            let name = truncate_cstr::<{ libc::_NTO_THREAD_NAME_MAX as usize }>(name);
+            const THREAD_NAME_MAX: usize = libc::_NTO_THREAD_NAME_MAX as usize;
+            #[cfg(any(target_os = "solaris", target_os = "illumos"))]
+            const THREAD_NAME_MAX: usize = 32;
 
+            let name = truncate_cstr::<{ THREAD_NAME_MAX }>(name);
             let res = unsafe { f(libc::pthread_self(), name.as_ptr()) };
             debug_assert_eq!(res, 0);
         }
@@ -360,6 +363,8 @@ impl Drop for Thread {
     target_os = "tvos",
     target_os = "watchos",
     target_os = "nto",
+    target_os = "solaris",
+    target_os = "illumos",
 ))]
 fn truncate_cstr<const MAX_WITH_NUL: usize>(cstr: &CStr) -> [libc::c_char; MAX_WITH_NUL] {
     let mut result = [0; MAX_WITH_NUL];