Skip to content

Commit ff10152

Browse files
committed
Fallout: move from scoped to spawn
1 parent 6e0fb70 commit ff10152

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

41 files changed

+98
-63
lines changed

src/librustdoc/lib.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -130,10 +130,10 @@ struct Output {
130130

131131
pub fn main() {
132132
const STACK_SIZE: usize = 32000000; // 32MB
133-
let res = std::thread::Builder::new().stack_size(STACK_SIZE).scoped(move || {
133+
let res = std::thread::Builder::new().stack_size(STACK_SIZE).spawn(move || {
134134
let s = env::args().collect::<Vec<_>>();
135135
main_args(&s)
136-
}).unwrap().join();
136+
}).unwrap().join().unwrap();
137137
env::set_exit_status(res as i32);
138138
}
139139

src/test/run-pass/atomic-print.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ fn main(){
2727
if env::args().count() == 2 {
2828
let barrier = sync::Arc::new(sync::Barrier::new(2));
2929
let tbarrier = barrier.clone();
30-
let t = thread::scoped(||{
30+
let t = thread::spawn(move || {
3131
tbarrier.wait();
3232
do_print(1);
3333
});

src/test/run-pass/capturing-logging.rs

+2-1
Original file line numberDiff line numberDiff line change
@@ -36,12 +36,13 @@ impl Logger for MyWriter {
3636
fn main() {
3737
let (tx, rx) = channel();
3838
let (mut r, w) = (ChanReader::new(rx), ChanWriter::new(tx));
39-
let _t = thread::scoped(move|| {
39+
let t = thread::spawn(move|| {
4040
set_logger(box MyWriter(w) as Box<Logger+Send>);
4141
debug!("debug");
4242
info!("info");
4343
});
4444
let s = r.read_to_string().unwrap();
4545
assert!(s.contains("info"));
4646
assert!(!s.contains("debug"));
47+
t.join();
4748
}

src/test/run-pass/clone-with-exterior.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,8 @@ struct Pair {
2323
pub fn main() {
2424
let z: Box<_> = box Pair { a : 10, b : 12};
2525

26-
let _t = thread::scoped(move|| {
26+
thread::spawn(move|| {
2727
assert_eq!(z.a, 10);
2828
assert_eq!(z.b, 12);
29-
});
29+
}).join();
3030
}

src/test/run-pass/comm.rs

+2-1
Original file line numberDiff line numberDiff line change
@@ -15,11 +15,12 @@ use std::sync::mpsc::{channel, Sender};
1515

1616
pub fn main() {
1717
let (tx, rx) = channel();
18-
let _t = thread::scoped(move|| { child(&tx) });
18+
let t = thread::spawn(move|| { child(&tx) });
1919
let y = rx.recv().unwrap();
2020
println!("received");
2121
println!("{}", y);
2222
assert_eq!(y, 10);
23+
t.join();
2324
}
2425

2526
fn child(c: &Sender<isize>) {

src/test/run-pass/extern-call-deep2.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ fn count(n: libc::uintptr_t) -> libc::uintptr_t {
4242
pub fn main() {
4343
// Make sure we're on a task with small Rust stacks (main currently
4444
// has a large stack)
45-
thread::scoped(move|| {
45+
thread::spawn(move|| {
4646
let result = count(1000);
4747
println!("result = {}", result);
4848
assert_eq!(result, 1000);

src/test/run-pass/extern-call-scrub.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -46,9 +46,9 @@ fn count(n: libc::uintptr_t) -> libc::uintptr_t {
4646
pub fn main() {
4747
// Make sure we're on a task with small Rust stacks (main currently
4848
// has a large stack)
49-
let _t = thread::scoped(move|| {
49+
thread::spawn(move|| {
5050
let result = count(12);
5151
println!("result = {}", result);
5252
assert_eq!(result, 2048);
53-
});
53+
}).join();
5454
}

src/test/run-pass/fds-are-cloexec.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -39,9 +39,9 @@ fn parent() {
3939
assert_eq!(tcp1.as_raw_fd(), file.as_raw_fd() + 2);
4040
let tcp2 = tcp1.try_clone().unwrap();
4141
let addr = tcp1.local_addr().unwrap();
42-
let t = thread::scoped(|| TcpStream::connect(addr).unwrap());
42+
let t = thread::spawn(move || TcpStream::connect(addr).unwrap());
4343
let tcp3 = tcp1.accept().unwrap().0;
44-
let tcp4 = t.join();
44+
let tcp4 = t.join().unwrap();
4545
let tcp5 = tcp3.try_clone().unwrap();
4646
let tcp6 = tcp4.try_clone().unwrap();
4747
let udp1 = UdpSocket::bind("127.0.0.1:0").unwrap();

src/test/run-pass/init-large-type.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ const SIZE: usize = 1024 * 1024;
2626

2727
fn main() {
2828
// do the test in a new thread to avoid (spurious?) stack overflows
29-
let _ = thread::scoped(|| {
29+
thread::spawn(|| {
3030
let _memory: [u8; SIZE] = unsafe { init() };
3131
}).join();
3232
}

src/test/run-pass/issue-13494.rs

+2-1
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ fn helper(rx: Receiver<Sender<()>>) {
2626

2727
fn main() {
2828
let (tx, rx) = channel();
29-
let _t = thread::scoped(move|| { helper(rx) });
29+
let t = thread::spawn(move|| { helper(rx) });
3030
let (snd, rcv) = channel::<isize>();
3131
for _ in 1..100000 {
3232
snd.send(1).unwrap();
@@ -38,4 +38,5 @@ fn main() {
3838
}
3939
}
4040
drop(tx);
41+
t.join();
4142
}

src/test/run-pass/issue-20454.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -13,11 +13,11 @@
1313
use std::thread;
1414

1515
fn _foo() {
16-
let _t = thread::scoped(move || { // no need for -> ()
16+
thread::spawn(move || { // no need for -> ()
1717
loop {
1818
println!("hello");
1919
}
20-
});
20+
}).join();
2121
}
2222

2323
fn main() {}

src/test/run-pass/issue-3609.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ enum Msg
2323
}
2424

2525
fn foo(name: String, samples_chan: Sender<Msg>) {
26-
let _t = thread::scoped(move|| {
26+
thread::spawn(move|| {
2727
let mut samples_chan = samples_chan;
2828

2929
// FIXME (#22405): Replace `Box::new` with `box` here when/if possible.
@@ -34,7 +34,7 @@ fn foo(name: String, samples_chan: Sender<Msg>) {
3434
});
3535

3636
samples_chan.send(Msg::GetSamples(name.clone(), callback));
37-
});
37+
}).join();
3838
}
3939

4040
pub fn main() {}

src/test/run-pass/issue-9396.rs

+2-1
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ use std::time::Duration;
1919

2020
pub fn main() {
2121
let (tx, rx) = channel();
22-
let _t = thread::scoped(move||{
22+
let t = thread::spawn(move||{
2323
let mut timer = Timer::new().unwrap();
2424
timer.sleep(Duration::milliseconds(10));
2525
tx.send(()).unwrap();
@@ -31,4 +31,5 @@ pub fn main() {
3131
Err(TryRecvError::Disconnected) => unreachable!()
3232
}
3333
}
34+
t.join();
3435
}

src/test/run-pass/ivec-tag.rs

+2-1
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,10 @@ fn producer(tx: &Sender<Vec<u8>>) {
2323

2424
pub fn main() {
2525
let (tx, rx) = channel::<Vec<u8>>();
26-
let _prod = thread::scoped(move|| {
26+
let prod = thread::spawn(move|| {
2727
producer(&tx)
2828
});
2929

3030
let _data: Vec<u8> = rx.recv().unwrap();
31+
prod.join();
3132
}

src/test/run-pass/kindck-implicit-close-over-mut-var.rs

+7-4
Original file line numberDiff line numberDiff line change
@@ -18,36 +18,39 @@ fn foo() {
1818
// Here, i is *copied* into the proc (heap closure).
1919
// Requires allocation. The proc's copy is not mutable.
2020
let mut i = 0;
21-
let _t = thread::scoped(move|| {
21+
let t = thread::spawn(move|| {
2222
user(i);
2323
println!("spawned {}", i)
2424
});
2525
i += 1;
26-
println!("original {}", i)
26+
println!("original {}", i);
27+
t.join();
2728
}
2829

2930
fn bar() {
3031
// Here, the original i has not been moved, only copied, so is still
3132
// mutable outside of the proc.
3233
let mut i = 0;
3334
while i < 10 {
34-
let _t = thread::scoped(move|| {
35+
let t = thread::spawn(move|| {
3536
user(i);
3637
});
3738
i += 1;
39+
t.join();
3840
}
3941
}
4042

4143
fn car() {
4244
// Here, i must be shadowed in the proc to be mutable.
4345
let mut i = 0;
4446
while i < 10 {
45-
let _t = thread::scoped(move|| {
47+
let t = thread::spawn(move|| {
4648
let mut i = i;
4749
i += 1;
4850
user(i);
4951
});
5052
i += 1;
53+
t.join();
5154
}
5255
}
5356

src/test/run-pass/moves-based-on-type-capture-clause.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ use std::thread;
1414

1515
pub fn main() {
1616
let x = "Hello world!".to_string();
17-
let _t = thread::scoped(move|| {
17+
thread::spawn(move|| {
1818
println!("{}", x);
19-
});
19+
}).join();
2020
}

src/test/run-pass/out-of-stack-new-thread-no-split.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ fn recurse() {
3737
fn main() {
3838
let args: Vec<String> = env::args().collect();
3939
if args.len() > 1 && args[1] == "recurse" {
40-
let _t = thread::scoped(recurse);
40+
thread::spawn(recurse).join();
4141
} else {
4242
let recurse = Command::new(&args[0]).arg("recurse").output().unwrap();
4343
assert!(!recurse.status.success());

src/test/run-pass/rust-log-filter.rs

+3-1
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ impl log::Logger for ChannelLogger {
4141
pub fn main() {
4242
let (logger, rx) = ChannelLogger::new();
4343

44-
let _t = thread::scoped(move|| {
44+
let t = thread::spawn(move|| {
4545
log::set_logger(logger);
4646

4747
info!("foo");
@@ -54,4 +54,6 @@ pub fn main() {
5454
assert_eq!(rx.recv().unwrap(), "foo bar");
5555
assert_eq!(rx.recv().unwrap(), "bar foo");
5656
assert!(rx.recv().is_err());
57+
58+
t.join();
5759
}

src/test/run-pass/send-is-not-static-par-for.rs

+1-2
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010

1111
// pretty-expanded FIXME #23616
1212

13-
#![feature(core, std_misc)]
13+
#![feature(core, std_misc, scoped)]
1414
use std::thread;
1515
use std::sync::Mutex;
1616

@@ -25,7 +25,6 @@ fn par_for<I, F>(iter: I, f: F)
2525
f(elem)
2626
})
2727
}).collect();
28-
2928
}
3029

3130
fn sum(x: &[i32]) {

src/test/run-pass/send-resource.rs

+3-1
Original file line numberDiff line numberDiff line change
@@ -32,12 +32,14 @@ fn test(f: isize) -> test {
3232
pub fn main() {
3333
let (tx, rx) = channel();
3434

35-
let _t = thread::scoped(move|| {
35+
let t = thread::spawn(move|| {
3636
let (tx2, rx2) = channel();
3737
tx.send(tx2).unwrap();
3838

3939
let _r = rx2.recv().unwrap();
4040
});
4141

4242
rx.recv().unwrap().send(test(42)).unwrap();
43+
44+
t.join();
4345
}

src/test/run-pass/spawn-fn.rs

+6-3
Original file line numberDiff line numberDiff line change
@@ -16,13 +16,16 @@ fn x(s: String, n: isize) {
1616
}
1717

1818
pub fn main() {
19-
let _t = thread::scoped(|| x("hello from first spawned fn".to_string(), 65) );
20-
let _t = thread::scoped(|| x("hello from second spawned fn".to_string(), 66) );
21-
let _t = thread::scoped(|| x("hello from third spawned fn".to_string(), 67) );
19+
let t1 = thread::spawn(|| x("hello from first spawned fn".to_string(), 65) );
20+
let t2 = thread::spawn(|| x("hello from second spawned fn".to_string(), 66) );
21+
let t3 = thread::spawn(|| x("hello from third spawned fn".to_string(), 67) );
2222
let mut i = 30;
2323
while i > 0 {
2424
i = i - 1;
2525
println!("parent sleeping");
2626
thread::yield_now();
2727
}
28+
t1.join();
29+
t2.join();
30+
t3.join();
2831
}

src/test/run-pass/task-comm-0.rs

+2-1
Original file line numberDiff line numberDiff line change
@@ -26,12 +26,13 @@ fn test05_start(tx : &Sender<isize>) {
2626

2727
fn test05() {
2828
let (tx, rx) = channel();
29-
let _t = thread::scoped(move|| { test05_start(&tx) });
29+
let t = thread::spawn(move|| { test05_start(&tx) });
3030
let mut value: isize = rx.recv().unwrap();
3131
println!("{}", value);
3232
value = rx.recv().unwrap();
3333
println!("{}", value);
3434
value = rx.recv().unwrap();
3535
println!("{}", value);
3636
assert_eq!(value, 30);
37+
t.join();
3738
}

src/test/run-pass/task-comm-1.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,6 @@ pub fn main() { test00(); }
1717
fn start() { println!("Started / Finished task."); }
1818

1919
fn test00() {
20-
let _ = thread::scoped(move|| start() ).join();
20+
thread::spawn(move|| start() ).join();
2121
println!("Completing.");
2222
}

src/test/run-pass/task-comm-10.rs

+3-1
Original file line numberDiff line numberDiff line change
@@ -29,10 +29,12 @@ fn start(tx: &Sender<Sender<String>>) {
2929

3030
pub fn main() {
3131
let (tx, rx) = channel();
32-
let _child = thread::scoped(move|| { start(&tx) });
32+
let child = thread::spawn(move|| { start(&tx) });
3333

3434
let mut c = rx.recv().unwrap();
3535
c.send("A".to_string()).unwrap();
3636
c.send("B".to_string()).unwrap();
3737
thread::yield_now();
38+
39+
child.join();
3840
}

src/test/run-pass/task-comm-11.rs

+2-1
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,9 @@ fn start(tx: &Sender<Sender<isize>>) {
2222

2323
pub fn main() {
2424
let (tx, rx) = channel();
25-
let _child = thread::scoped(move|| {
25+
let child = thread::spawn(move|| {
2626
start(&tx)
2727
});
2828
let _tx = rx.recv().unwrap();
29+
child.join();
2930
}

src/test/run-pass/task-comm-12.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ fn start(_task_number: isize) { println!("Started / Finished task."); }
1818

1919
fn test00() {
2020
let i: isize = 0;
21-
let mut result = thread::scoped(move|| {
21+
let mut result = thread::spawn(move|| {
2222
start(i)
2323
});
2424

src/test/run-pass/task-comm-13.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,6 @@ fn start(tx: &Sender<isize>, start: isize, number_of_messages: isize) {
2121
pub fn main() {
2222
println!("Check that we don't deadlock.");
2323
let (tx, rx) = channel();
24-
let _t = thread::scoped(move|| { start(&tx, 0, 10) }).join();
24+
let _ = thread::spawn(move|| { start(&tx, 0, 10) }).join();
2525
println!("Joined task");
2626
}

src/test/run-pass/task-comm-14.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ pub fn main() {
2121
while (i > 0) {
2222
println!("{}", i);
2323
let tx = tx.clone();
24-
thread::scoped({let i = i; move|| { child(i, &tx) }});
24+
thread::spawn({let i = i; move|| { child(i, &tx) }});
2525
i = i - 1;
2626
}
2727

src/test/run-pass/task-comm-15.rs

+2-1
Original file line numberDiff line numberDiff line change
@@ -29,8 +29,9 @@ pub fn main() {
2929
// the child's point of view the receiver may die. We should
3030
// drop messages on the floor in this case, and not crash!
3131
let (tx, rx) = channel();
32-
let _t = thread::scoped(move|| {
32+
let t = thread::spawn(move|| {
3333
start(&tx, 10)
3434
});
3535
rx.recv();
36+
t.join();
3637
}

0 commit comments

Comments
 (0)