File tree 1 file changed +18
-1
lines changed
library/std/src/sys/pal/unix
1 file changed +18
-1
lines changed Original file line number Diff line number Diff line change @@ -257,14 +257,31 @@ impl Thread {
257
257
CString :: new ( name) . ok ( )
258
258
}
259
259
260
+ #[ cfg( target_os = "haiku" ) ]
261
+ pub fn get_name ( ) -> Option < CString > {
262
+ let mut name = vec ! [ 0u8 ; libc:: B_OS_NAMELENGTH ] ;
263
+ unsafe {
264
+ let mut tinfo = mem:: MaybeUninit :: < libc:: thread_info > :: uninit ( ) ;
265
+ let thread_self = libc:: find_thread ( ptr:: null_mut ( ) ) ;
266
+ let res = libc:: get_thread_info ( thread_self, tinfo. as_mut_ptr ( ) ) ;
267
+ if res != libc:: B_OK {
268
+ return None ;
269
+ }
270
+ let info = tinfo. assume_init ( ) ;
271
+ name = info. name . iter ( ) . map ( |& c| c as u8 ) . collect ( ) ;
272
+ CString :: new ( name) . ok ( )
273
+ }
274
+ }
275
+
260
276
#[ cfg( not( any(
261
277
target_os = "linux" ,
262
278
target_os = "freebsd" ,
263
279
target_os = "netbsd" ,
264
280
target_os = "macos" ,
265
281
target_os = "ios" ,
266
282
target_os = "tvos" ,
267
- target_os = "watchos"
283
+ target_os = "watchos" ,
284
+ target_os = "haiku"
268
285
) ) ) ]
269
286
pub fn get_name ( ) -> Option < CString > {
270
287
None
You can’t perform that action at this time.
0 commit comments