Skip to content

Commit caca9b2

Browse files
committed
Fallout from stabilization
1 parent f67b81e commit caca9b2

File tree

97 files changed

+245
-248
lines changed

Some content is hidden

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

97 files changed

+245
-248
lines changed

Diff for: src/compiletest/runtest.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -447,7 +447,7 @@ fn run_debuginfo_gdb_test(config: &Config, props: &TestProps, testfile: &Path) {
447447
loop {
448448
//waiting 1 second for gdbserver start
449449
timer::sleep(Duration::milliseconds(1000));
450-
let result = Thread::spawn(move || {
450+
let result = Thread::scoped(move || {
451451
tcp::TcpStream::connect("127.0.0.1:5039").unwrap();
452452
}).join();
453453
if result.is_err() {

Diff for: src/doc/intro.md

+4-5
Original file line numberDiff line numberDiff line change
@@ -395,7 +395,7 @@ fn main() {
395395
for _ in range(0u, 10u) {
396396
Thread::spawn(move || {
397397
println!("Hello, world!");
398-
}).detach();
398+
});
399399
}
400400
}
401401
```
@@ -405,8 +405,7 @@ This program creates ten threads, who all print `Hello, world!`. The
405405
double bars `||`. (The `move` keyword indicates that the closure takes
406406
ownership of any data it uses; we'll have more on the significance of
407407
this shortly.) This closure is executed in a new thread created by
408-
`spawn`. The `detach` method means that the child thread is allowed to
409-
outlive its parent.
408+
`spawn`.
410409
411410
One common form of problem in concurrent programs is a 'data race.'
412411
This occurs when two different threads attempt to access the same
@@ -429,7 +428,7 @@ fn main() {
429428
for i in range(0u, 3u) {
430429
Thread::spawn(move || {
431430
for j in range(0, 3) { numbers[j] += 1 }
432-
}).detach();
431+
});
433432
}
434433
}
435434
```
@@ -488,7 +487,7 @@ fn main() {
488487
(*array)[i] += 1;
489488
490489
println!("numbers[{}] is {}", i, (*array)[i]);
491-
}).detach();
490+
});
492491
}
493492
}
494493
```

Diff for: src/liballoc/arc.rs

+3-3
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@
4242
//!
4343
//! Thread::spawn(move || {
4444
//! println!("{}", five);
45-
//! }).detach();
45+
//! });
4646
//! }
4747
//! ```
4848
//!
@@ -63,7 +63,7 @@
6363
//! *number += 1;
6464
//!
6565
//! println!("{}", *number); // prints 6
66-
//! }).detach();
66+
//! });
6767
//! }
6868
//! ```
6969
@@ -106,7 +106,7 @@ use heap::deallocate;
106106
/// let local_numbers = child_numbers.as_slice();
107107
///
108108
/// // Work with the local numbers
109-
/// }).detach();
109+
/// });
110110
/// }
111111
/// }
112112
/// ```

Diff for: src/libcollections/dlist.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -924,7 +924,7 @@ mod tests {
924924
#[test]
925925
fn test_send() {
926926
let n = list_from(&[1i,2,3]);
927-
Thread::spawn(move || {
927+
Thread::scoped(move || {
928928
check_links(&n);
929929
let a: &[_] = &[&1,&2,&3];
930930
assert_eq!(a, n.iter().collect::<Vec<&int>>());

Diff for: src/libcore/atomic.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@
5050
//! let spinlock_clone = spinlock.clone();
5151
//! Thread::spawn(move|| {
5252
//! spinlock_clone.store(0, Ordering::SeqCst);
53-
//! }).detach();
53+
//! });
5454
//!
5555
//! // Wait for the other task to release the lock
5656
//! while spinlock.load(Ordering::SeqCst) != 0 {}

Diff for: src/librustc_driver/lib.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -559,7 +559,7 @@ pub fn monitor<F:FnOnce()+Send>(f: F) {
559559
cfg = cfg.stack_size(STACK_SIZE);
560560
}
561561

562-
match cfg.spawn(move || { std::io::stdio::set_stderr(box w); f() }).join() {
562+
match cfg.scoped(move || { std::io::stdio::set_stderr(box w); f() }).join() {
563563
Ok(()) => { /* fallthrough */ }
564564
Err(value) => {
565565
// Thread panicked without emitting a fatal diagnostic

Diff for: src/librustc_trans/back/write.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -928,7 +928,7 @@ fn run_work_multithreaded(sess: &Session,
928928
}
929929

930930
tx.take().unwrap().send(()).unwrap();
931-
}).detach();
931+
});
932932
}
933933

934934
let mut panicked = false;

Diff for: src/librustdoc/lib.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -116,7 +116,7 @@ struct Output {
116116

117117
pub fn main() {
118118
static STACK_SIZE: uint = 32000000; // 32MB
119-
let res = std::thread::Builder::new().stack_size(STACK_SIZE).spawn(move || {
119+
let res = std::thread::Builder::new().stack_size(STACK_SIZE).scoped(move || {
120120
main_args(std::os::args().as_slice())
121121
}).join();
122122
std::os::set_exit_status(res.map_err(|_| ()).unwrap());
@@ -358,7 +358,7 @@ fn rust_input(cratefile: &str, externs: core::Externs, matches: &getopts::Matche
358358
let cr = Path::new(cratefile);
359359
info!("starting to run rustc");
360360

361-
let (mut krate, analysis) = std::thread::Thread::spawn(move |:| {
361+
let (mut krate, analysis) = std::thread::Thread::scoped(move |:| {
362362
let cr = cr;
363363
core::run_core(paths, cfgs, externs, &cr, triple)
364364
}).join().map_err(|_| "rustc failed").unwrap();

Diff for: src/librustdoc/test.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -157,7 +157,7 @@ fn runtest(test: &str, cratename: &str, libs: SearchPaths,
157157
None => box io::stderr() as Box<Writer>,
158158
};
159159
io::util::copy(&mut p, &mut err).unwrap();
160-
}).detach();
160+
});
161161
let emitter = diagnostic::EmitterWriter::new(box w2, None);
162162

163163
// Compile the code

Diff for: src/libstd/io/comm_adapters.rs

+3-3
Original file line numberDiff line numberDiff line change
@@ -172,7 +172,7 @@ mod test {
172172
tx.send(vec![3u8, 4u8]).unwrap();
173173
tx.send(vec![5u8, 6u8]).unwrap();
174174
tx.send(vec![7u8, 8u8]).unwrap();
175-
}).detach();
175+
});
176176

177177
let mut reader = ChanReader::new(rx);
178178
let mut buf = [0u8; 3];
@@ -215,7 +215,7 @@ mod test {
215215
tx.send(b"rld\nhow ".to_vec()).unwrap();
216216
tx.send(b"are you?".to_vec()).unwrap();
217217
tx.send(b"".to_vec()).unwrap();
218-
}).detach();
218+
});
219219

220220
let mut reader = ChanReader::new(rx);
221221

@@ -234,7 +234,7 @@ mod test {
234234
writer.write_be_u32(42).unwrap();
235235

236236
let wanted = vec![0u8, 0u8, 0u8, 42u8];
237-
let got = match Thread::spawn(move|| { rx.recv().unwrap() }).join() {
237+
let got = match Thread::scoped(move|| { rx.recv().unwrap() }).join() {
238238
Ok(got) => got,
239239
Err(_) => panic!(),
240240
};

Diff for: src/libstd/io/mod.rs

+6-4
Original file line numberDiff line numberDiff line change
@@ -120,10 +120,12 @@
120120
//! for stream in acceptor.incoming() {
121121
//! match stream {
122122
//! Err(e) => { /* connection failed */ }
123-
//! Ok(stream) => Thread::spawn(move|| {
124-
//! // connection succeeded
125-
//! handle_client(stream)
126-
//! }).detach()
123+
//! Ok(stream) => {
124+
//! Thread::spawn(move|| {
125+
//! // connection succeeded
126+
//! handle_client(stream)
127+
//! });
128+
//! }
127129
//! }
128130
//! }
129131
//!

Diff for: src/libstd/io/net/pipe.rs

+6-6
Original file line numberDiff line numberDiff line change
@@ -608,7 +608,7 @@ mod tests {
608608
let mut a = a;
609609
let _s = a.accept().unwrap();
610610
let _ = rx.recv();
611-
}).detach();
611+
});
612612

613613
let mut b = [0];
614614
let mut s = UnixStream::connect(&addr).unwrap();
@@ -645,7 +645,7 @@ mod tests {
645645
let mut a = a;
646646
let _s = a.accept().unwrap();
647647
let _ = rx.recv();
648-
}).detach();
648+
});
649649

650650
let mut s = UnixStream::connect(&addr).unwrap();
651651
let s2 = s.clone();
@@ -672,7 +672,7 @@ mod tests {
672672
rx.recv().unwrap();
673673
assert!(s.write(&[0]).is_ok());
674674
let _ = rx.recv();
675-
}).detach();
675+
});
676676

677677
let mut s = a.accept().unwrap();
678678
s.set_timeout(Some(20));
@@ -716,7 +716,7 @@ mod tests {
716716
}
717717
}
718718
let _ = rx.recv();
719-
}).detach();
719+
});
720720

721721
let mut s = a.accept().unwrap();
722722
s.set_read_timeout(Some(20));
@@ -739,7 +739,7 @@ mod tests {
739739
rx.recv().unwrap();
740740
assert!(s.write(&[0]).is_ok());
741741
let _ = rx.recv();
742-
}).detach();
742+
});
743743

744744
let mut s = a.accept().unwrap();
745745
s.set_write_timeout(Some(20));
@@ -766,7 +766,7 @@ mod tests {
766766
rx.recv().unwrap();
767767
assert!(s.write(&[0]).is_ok());
768768
let _ = rx.recv();
769-
}).detach();
769+
});
770770

771771
let mut s = a.accept().unwrap();
772772
let s2 = s.clone();

Diff for: src/libstd/io/net/tcp.rs

+14-12
Original file line numberDiff line numberDiff line change
@@ -146,7 +146,7 @@ impl TcpStream {
146146
/// timer::sleep(Duration::seconds(1));
147147
/// let mut stream = stream2;
148148
/// stream.close_read();
149-
/// }).detach();
149+
/// });
150150
///
151151
/// // wait for some data, will get canceled after one second
152152
/// let mut buf = [0];
@@ -295,10 +295,12 @@ impl sys_common::AsInner<TcpStreamImp> for TcpStream {
295295
/// for stream in acceptor.incoming() {
296296
/// match stream {
297297
/// Err(e) => { /* connection failed */ }
298-
/// Ok(stream) => Thread::spawn(move|| {
299-
/// // connection succeeded
300-
/// handle_client(stream)
301-
/// }).detach()
298+
/// Ok(stream) => {
299+
/// Thread::spawn(move|| {
300+
/// // connection succeeded
301+
/// handle_client(stream)
302+
/// });
303+
/// }
302304
/// }
303305
/// }
304306
///
@@ -432,7 +434,7 @@ impl TcpAcceptor {
432434
/// Err(e) => panic!("unexpected error: {}", e),
433435
/// }
434436
/// }
435-
/// }).detach();
437+
/// });
436438
///
437439
/// # fn wait_for_sigint() {}
438440
/// // Now that our accept loop is running, wait for the program to be
@@ -1186,7 +1188,7 @@ mod test {
11861188
let mut a = a;
11871189
let _s = a.accept().unwrap();
11881190
let _ = rx.recv().unwrap();
1189-
}).detach();
1191+
});
11901192

11911193
let mut b = [0];
11921194
let mut s = TcpStream::connect(addr).unwrap();
@@ -1223,7 +1225,7 @@ mod test {
12231225
let mut a = a;
12241226
let _s = a.accept().unwrap();
12251227
let _ = rx.recv().unwrap();
1226-
}).detach();
1228+
});
12271229

12281230
let mut s = TcpStream::connect(addr).unwrap();
12291231
let s2 = s.clone();
@@ -1250,7 +1252,7 @@ mod test {
12501252
rx.recv().unwrap();
12511253
assert!(s.write(&[0]).is_ok());
12521254
let _ = rx.recv();
1253-
}).detach();
1255+
});
12541256

12551257
let mut s = a.accept().unwrap();
12561258
s.set_timeout(Some(20));
@@ -1289,7 +1291,7 @@ mod test {
12891291
}
12901292
}
12911293
let _ = rx.recv();
1292-
}).detach();
1294+
});
12931295

12941296
let mut s = a.accept().unwrap();
12951297
s.set_read_timeout(Some(20));
@@ -1312,7 +1314,7 @@ mod test {
13121314
rx.recv().unwrap();
13131315
assert!(s.write(&[0]).is_ok());
13141316
let _ = rx.recv();
1315-
}).detach();
1317+
});
13161318

13171319
let mut s = a.accept().unwrap();
13181320
s.set_write_timeout(Some(20));
@@ -1340,7 +1342,7 @@ mod test {
13401342
rx.recv().unwrap();
13411343
assert_eq!(s.write(&[0]), Ok(()));
13421344
let _ = rx.recv();
1343-
}).detach();
1345+
});
13441346

13451347
let mut s = a.accept().unwrap();
13461348
let s2 = s.clone();

Diff for: src/libstd/io/process.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -705,7 +705,7 @@ impl Process {
705705
Thread::spawn(move |:| {
706706
let mut stream = stream;
707707
tx.send(stream.read_to_end()).unwrap();
708-
}).detach();
708+
});
709709
}
710710
None => tx.send(Ok(Vec::new())).unwrap()
711711
}

Diff for: src/libstd/io/timer.rs

+3-3
Original file line numberDiff line numberDiff line change
@@ -358,7 +358,7 @@ mod test {
358358

359359
Thread::spawn(move|| {
360360
let _ = timer_rx.recv();
361-
}).detach();
361+
});
362362

363363
// when we drop the TimerWatcher we're going to destroy the channel,
364364
// which must wake up the task on the other end
@@ -372,7 +372,7 @@ mod test {
372372

373373
Thread::spawn(move|| {
374374
let _ = timer_rx.recv();
375-
}).detach();
375+
});
376376

377377
timer.oneshot(Duration::milliseconds(1));
378378
}
@@ -385,7 +385,7 @@ mod test {
385385

386386
Thread::spawn(move|| {
387387
let _ = timer_rx.recv();
388-
}).detach();
388+
});
389389

390390
timer.sleep(Duration::milliseconds(1));
391391
}

Diff for: src/libstd/macros.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -303,8 +303,8 @@ macro_rules! try {
303303
/// # fn long_running_task() {}
304304
/// # fn calculate_the_answer() -> int { 42i }
305305
///
306-
/// Thread::spawn(move|| { long_running_task(); tx1.send(()) }).detach();
307-
/// Thread::spawn(move|| { tx2.send(calculate_the_answer()) }).detach();
306+
/// Thread::spawn(move|| { long_running_task(); tx1.send(()).unwrap(); });
307+
/// Thread::spawn(move|| { tx2.send(calculate_the_answer()).unwrap(); });
308308
///
309309
/// select! (
310310
/// _ = rx1.recv() => println!("the long running task finished first"),

Diff for: src/libstd/path/posix.rs

+3-3
Original file line numberDiff line numberDiff line change
@@ -502,17 +502,17 @@ mod tests {
502502
#[test]
503503
fn test_null_byte() {
504504
use thread::Thread;
505-
let result = Thread::spawn(move|| {
505+
let result = Thread::scoped(move|| {
506506
Path::new(b"foo/bar\0")
507507
}).join();
508508
assert!(result.is_err());
509509

510-
let result = Thread::spawn(move|| {
510+
let result = Thread::scoped(move|| {
511511
Path::new("test").set_filename(b"f\0o")
512512
}).join();
513513
assert!(result.is_err());
514514

515-
let result = Thread::spawn(move|| {
515+
let result = Thread::scoped(move|| {
516516
Path::new("test").push(b"f\0o");
517517
}).join();
518518
assert!(result.is_err());

0 commit comments

Comments
 (0)