Skip to content

Commit 50e4fed

Browse files
committed
xous: thread: mark thread_main() as divergent
The thread wrapper function never returns, so we can mark it as divergent. Signed-off-by: Sean Cross <[email protected]>
1 parent 99b0659 commit 50e4fed

File tree

1 file changed

+7
-3
lines changed

1 file changed

+7
-3
lines changed

library/std/src/sys/pal/xous/thread.rs

+7-3
Original file line numberDiff line numberDiff line change
@@ -68,14 +68,18 @@ impl Thread {
6868
)
6969
.map_err(|code| io::Error::from_raw_os_error(code as i32))?;
7070

71-
extern "C" fn thread_start(main: *mut usize, guard_page_pre: usize, stack_size: usize) {
71+
extern "C" fn thread_start(
72+
main: *mut usize,
73+
guard_page_pre: usize,
74+
stack_size: usize,
75+
) -> ! {
7276
unsafe {
73-
// Finally, let's run some code.
77+
// Run the contents of the new thread.
7478
Box::from_raw(main as *mut Box<dyn FnOnce()>)();
7579
}
7680

7781
// Destroy TLS, which will free the TLS page and call the destructor for
78-
// any thread local storage.
82+
// any thread local storage (if any).
7983
unsafe {
8084
crate::sys::thread_local_key::destroy_tls();
8185
}

0 commit comments

Comments
 (0)