Skip to content

Commit 6635fbe

Browse files
committed
Eliminate FnBox usages from libstd.
1 parent 3750348 commit 6635fbe

File tree

10 files changed

+15
-24
lines changed

10 files changed

+15
-24
lines changed

src/libstd/sys/cloudabi/thread.rs

+1-2
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
use crate::boxed::FnBox;
21
use crate::cmp;
32
use crate::ffi::CStr;
43
use crate::io;
@@ -22,7 +21,7 @@ unsafe impl Sync for Thread {}
2221

2322
impl Thread {
2423
// unsafe: see thread::Builder::spawn_unchecked for safety requirements
25-
pub unsafe fn new(stack: usize, p: Box<dyn FnBox()>) -> io::Result<Thread> {
24+
pub unsafe fn new(stack: usize, p: Box<dyn FnOnce()>) -> io::Result<Thread> {
2625
let p = box p;
2726
let mut native: libc::pthread_t = mem::zeroed();
2827
let mut attr: libc::pthread_attr_t = mem::zeroed();

src/libstd/sys/redox/thread.rs

+1-2
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
use crate::boxed::FnBox;
21
use crate::ffi::CStr;
32
use crate::io;
43
use crate::mem;
@@ -19,7 +18,7 @@ unsafe impl Sync for Thread {}
1918

2019
impl Thread {
2120
// unsafe: see thread::Builder::spawn_unchecked for safety requirements
22-
pub unsafe fn new(_stack: usize, p: Box<dyn FnBox()>) -> io::Result<Thread> {
21+
pub unsafe fn new(_stack: usize, p: Box<dyn FnOnce()>) -> io::Result<Thread> {
2322
let p = box p;
2423

2524
let id = cvt(syscall::clone(syscall::CLONE_VM | syscall::CLONE_FS | syscall::CLONE_FILES))?;

src/libstd/sys/sgx/thread.rs

+3-5
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
#![cfg_attr(test, allow(dead_code))] // why is this necessary?
2-
use crate::boxed::FnBox;
32
use crate::ffi::CStr;
43
use crate::io;
54
use crate::time::Duration;
@@ -13,17 +12,16 @@ pub const DEFAULT_MIN_STACK_SIZE: usize = 4096;
1312
mod task_queue {
1413
use crate::sync::{Mutex, MutexGuard, Once};
1514
use crate::sync::mpsc;
16-
use crate::boxed::FnBox;
1715

1816
pub type JoinHandle = mpsc::Receiver<()>;
1917

2018
pub(super) struct Task {
21-
p: Box<dyn FnBox()>,
19+
p: Box<dyn FnOnce()>,
2220
done: mpsc::Sender<()>,
2321
}
2422

2523
impl Task {
26-
pub(super) fn new(p: Box<dyn FnBox()>) -> (Task, JoinHandle) {
24+
pub(super) fn new(p: Box<dyn FnOnce()>) -> (Task, JoinHandle) {
2725
let (done, recv) = mpsc::channel();
2826
(Task { p, done }, recv)
2927
}
@@ -51,7 +49,7 @@ mod task_queue {
5149

5250
impl Thread {
5351
// unsafe: see thread::Builder::spawn_unchecked for safety requirements
54-
pub unsafe fn new(_stack: usize, p: Box<dyn FnBox()>)
52+
pub unsafe fn new(_stack: usize, p: Box<dyn FnOnce()>)
5553
-> io::Result<Thread>
5654
{
5755
let mut queue_lock = task_queue::lock();

src/libstd/sys/unix/thread.rs

+1-2
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
use crate::boxed::FnBox;
21
use crate::cmp;
32
use crate::ffi::CStr;
43
use crate::io;
@@ -39,7 +38,7 @@ unsafe fn pthread_attr_setstacksize(_attr: *mut libc::pthread_attr_t,
3938

4039
impl Thread {
4140
// unsafe: see thread::Builder::spawn_unchecked for safety requirements
42-
pub unsafe fn new(stack: usize, p: Box<dyn FnBox()>)
41+
pub unsafe fn new(stack: usize, p: Box<dyn FnOnce()>)
4342
-> io::Result<Thread> {
4443
let p = box p;
4544
let mut native: libc::pthread_t = mem::zeroed();

src/libstd/sys/wasi/thread.rs

+1-2
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
use crate::boxed::FnBox;
21
use crate::cmp;
32
use crate::ffi::CStr;
43
use crate::io;
@@ -13,7 +12,7 @@ pub const DEFAULT_MIN_STACK_SIZE: usize = 4096;
1312

1413
impl Thread {
1514
// unsafe: see thread::Builder::spawn_unchecked for safety requirements
16-
pub unsafe fn new(_stack: usize, _p: Box<dyn FnBox()>)
15+
pub unsafe fn new(_stack: usize, _p: Box<dyn FnOnce()>)
1716
-> io::Result<Thread>
1817
{
1918
unsupported()

src/libstd/sys/wasm/thread.rs

+1-2
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
use crate::boxed::FnBox;
21
use crate::ffi::CStr;
32
use crate::io;
43
use crate::sys::{unsupported, Void};
@@ -10,7 +9,7 @@ pub const DEFAULT_MIN_STACK_SIZE: usize = 4096;
109

1110
impl Thread {
1211
// unsafe: see thread::Builder::spawn_unchecked for safety requirements
13-
pub unsafe fn new(_stack: usize, _p: Box<dyn FnBox()>)
12+
pub unsafe fn new(_stack: usize, _p: Box<dyn FnOnce()>)
1413
-> io::Result<Thread>
1514
{
1615
unsupported()

src/libstd/sys/windows/thread.rs

+1-2
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
use crate::boxed::FnBox;
21
use crate::io;
32
use crate::ffi::CStr;
43
use crate::mem;
@@ -20,7 +19,7 @@ pub struct Thread {
2019

2120
impl Thread {
2221
// unsafe: see thread::Builder::spawn_unchecked for safety requirements
23-
pub unsafe fn new(stack: usize, p: Box<dyn FnBox()>)
22+
pub unsafe fn new(stack: usize, p: Box<dyn FnOnce()>)
2423
-> io::Result<Thread> {
2524
let p = box p;
2625

src/libstd/sys_common/at_exit_imp.rs

+2-3
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,11 @@
22
//!
33
//! Documentation can be found on the `rt::at_exit` function.
44
5-
use crate::boxed::FnBox;
65
use crate::ptr;
76
use crate::mem;
87
use crate::sys_common::mutex::Mutex;
98

10-
type Queue = Vec<Box<dyn FnBox()>>;
9+
type Queue = Vec<Box<dyn FnOnce()>>;
1110

1211
// NB these are specifically not types from `std::sync` as they currently rely
1312
// on poisoning and this module needs to operate at a lower level than requiring
@@ -61,7 +60,7 @@ pub fn cleanup() {
6160
}
6261
}
6362

64-
pub fn push(f: Box<dyn FnBox()>) -> bool {
63+
pub fn push(f: Box<dyn FnOnce()>) -> bool {
6564
unsafe {
6665
let _guard = LOCK.lock();
6766
if init() {

src/libstd/sys_common/thread.rs

+1-2
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
use crate::boxed::FnBox;
21
use crate::env;
32
use crate::sync::atomic::{self, Ordering};
43
use crate::sys::stack_overflow;
@@ -11,7 +10,7 @@ pub unsafe fn start_thread(main: *mut u8) {
1110
let _handler = stack_overflow::Handler::new();
1211

1312
// Finally, let's run some code.
14-
Box::from_raw(main as *mut Box<dyn FnBox()>)()
13+
Box::from_raw(main as *mut Box<dyn FnOnce()>)()
1514
}
1615

1716
pub fn min_stack() -> usize {

src/libstd/thread/mod.rs

+3-2
Original file line numberDiff line numberDiff line change
@@ -157,7 +157,6 @@
157157
#![stable(feature = "rust1", since = "1.0.0")]
158158

159159
use crate::any::Any;
160-
use crate::boxed::FnBox;
161160
use crate::cell::UnsafeCell;
162161
use crate::ffi::{CStr, CString};
163162
use crate::fmt;
@@ -488,7 +487,9 @@ impl Builder {
488487
// returning.
489488
native: Some(imp::Thread::new(
490489
stack_size,
491-
mem::transmute::<Box<dyn FnBox() + 'a>, Box<dyn FnBox() + 'static>>(Box::new(main))
490+
mem::transmute::<Box<dyn FnOnce() + 'a>, Box<dyn FnOnce() + 'static>>(Box::new(
491+
main,
492+
)),
492493
)?),
493494
thread: my_thread,
494495
packet: Packet(my_packet),

0 commit comments

Comments
 (0)