about summary refs log tree commit diff
diff options
context:
space:
mode:
authorRaoul Strackx <raoul.strackx@fortanix.com>2024-05-30 15:50:44 +0200
committerRaoul Strackx <raoul.strackx@fortanix.com>2024-06-04 08:46:38 +0200
commitb8c6008fbcb0a1f9f8af1ad7b6b196c950351b67 (patch)
tree1fdef93e51533b763d2bd1e19d3facc64cf1931f
parent9b2e41a21800bcd56c5ce3307ab7e484f83d51b3 (diff)
downloadrust-b8c6008fbcb0a1f9f8af1ad7b6b196c950351b67.tar.gz
rust-b8c6008fbcb0a1f9f8af1ad7b6b196c950351b67.zip
Store `Task::p` as `dyn FnOnce() + Send`
-rw-r--r--library/std/src/sys/pal/sgx/thread.rs6
1 files changed, 3 insertions, 3 deletions
diff --git a/library/std/src/sys/pal/sgx/thread.rs b/library/std/src/sys/pal/sgx/thread.rs
index d70c6e31fb7..2d936b09c70 100644
--- a/library/std/src/sys/pal/sgx/thread.rs
+++ b/library/std/src/sys/pal/sgx/thread.rs
@@ -28,14 +28,14 @@ mod task_queue {
     }
 
     pub(super) struct Task {
-        p: Box<dyn FnOnce()>,
+        p: Box<dyn FnOnce() + Send>,
         done: JoinNotifier,
     }
 
     unsafe impl Send for Task {}
 
     impl Task {
-        pub(super) fn new(p: Box<dyn FnOnce()>) -> (Task, JoinHandle) {
+        pub(super) fn new(p: Box<dyn FnOnce() + Send>) -> (Task, JoinHandle) {
             let (done, recv) = wait_notify::new();
             let done = JoinNotifier(Some(done));
             (Task { p, done }, recv)
@@ -97,7 +97,7 @@ pub mod wait_notify {
 
 impl Thread {
     // unsafe: see thread::Builder::spawn_unchecked for safety requirements
-    pub unsafe fn new(_stack: usize, p: Box<dyn FnOnce()>) -> io::Result<Thread> {
+    pub unsafe fn new(_stack: usize, p: Box<dyn FnOnce() + Send>) -> io::Result<Thread> {
         let mut queue_lock = task_queue::lock();
         unsafe { usercalls::launch_thread()? };
         let (task, handle) = task_queue::Task::new(p);