File tree 8 files changed +20
-20
lines changed
8 files changed +20
-20
lines changed Original file line number Diff line number Diff line change @@ -66,15 +66,15 @@ pub fn main() {
66
66
assert_eq ! ( receiver. recv( ) . ok( ) , None ) ;
67
67
68
68
let ( sender, receiver) = channel ( ) ;
69
- let _t = Thread :: spawn ( move || {
69
+ let _t = Thread :: scoped ( move || {
70
70
let v = Foo :: FailingVariant { on_drop : SendOnDrop { sender : sender } } ;
71
71
} ) ;
72
72
assert_eq ! ( receiver. recv( ) . unwrap( ) , Message :: Dropped ) ;
73
73
assert_eq ! ( receiver. recv( ) . ok( ) , None ) ;
74
74
75
75
let ( sender, receiver) = channel ( ) ;
76
76
let _t = {
77
- Thread :: spawn ( move || {
77
+ Thread :: scoped ( move || {
78
78
let mut v = Foo :: NestedVariant ( box 42 u, SendOnDrop {
79
79
sender : sender. clone ( )
80
80
} , sender. clone ( ) ) ;
Original file line number Diff line number Diff line change @@ -42,7 +42,7 @@ fn count(n: libc::uintptr_t) -> libc::uintptr_t {
42
42
43
43
pub fn main ( ) {
44
44
range ( 0 u, 100 ) . map ( |_| {
45
- Thread :: spawn ( move || {
45
+ Thread :: scoped ( move || {
46
46
assert_eq ! ( count( 5 ) , 16 ) ;
47
47
} )
48
48
} ) . collect :: < Vec < _ > > ( ) ;
Original file line number Diff line number Diff line change @@ -39,7 +39,7 @@ fn count(n: libc::uintptr_t) -> libc::uintptr_t {
39
39
40
40
pub fn main ( ) {
41
41
range ( 0 , 10 u) . map ( |i| {
42
- Thread :: spawn ( move || {
42
+ Thread :: scoped ( move || {
43
43
let result = count ( 5 ) ;
44
44
println ! ( "result = {}" , result) ;
45
45
assert_eq ! ( result, 16 ) ;
Original file line number Diff line number Diff line change @@ -15,7 +15,7 @@ use std::time::Duration;
15
15
16
16
pub fn main ( ) {
17
17
let ( tx, rx) = channel ( ) ;
18
- let _t = Thread :: spawn ( move ||{
18
+ let _t = Thread :: scoped ( move ||{
19
19
let mut timer = Timer :: new ( ) . unwrap ( ) ;
20
20
timer. sleep ( Duration :: milliseconds ( 10 ) ) ;
21
21
tx. send ( ( ) ) . unwrap ( ) ;
Original file line number Diff line number Diff line change @@ -34,11 +34,11 @@ fn test() {
34
34
35
35
let ( srv_tx, srv_rx) = channel ( ) ;
36
36
let ( cli_tx, cli_rx) = channel ( ) ;
37
- for _ in range ( 0 , N ) {
37
+ let _t = range ( 0 , N ) . map ( |_| {
38
38
let a = a. clone ( ) ;
39
39
let cnt = cnt. clone ( ) ;
40
40
let srv_tx = srv_tx. clone ( ) ;
41
- Thread :: spawn ( move || {
41
+ Thread :: scoped ( move || {
42
42
let mut a = a;
43
43
loop {
44
44
match a. accept ( ) {
@@ -52,18 +52,18 @@ fn test() {
52
52
}
53
53
}
54
54
srv_tx. send ( ( ) ) ;
55
- } ) ;
56
- }
55
+ } )
56
+ } ) . collect :: < Vec < _ > > ( ) ;
57
57
58
- for _ in range ( 0 , N ) {
58
+ let _t = range ( 0 , N ) . map ( |_| {
59
59
let cli_tx = cli_tx. clone ( ) ;
60
- Thread :: spawn ( move || {
60
+ Thread :: scoped ( move || {
61
61
for _ in range ( 0 , M ) {
62
62
let _s = TcpStream :: connect ( addr) . unwrap ( ) ;
63
63
}
64
64
cli_tx. send ( ( ) ) ;
65
- } ) ;
66
- }
65
+ } )
66
+ } ) . collect :: < Vec < _ > > ( ) ;
67
67
drop ( ( cli_tx, srv_tx) ) ;
68
68
69
69
// wait for senders
Original file line number Diff line number Diff line change @@ -13,7 +13,7 @@ use std::thread::Thread;
13
13
pub fn main ( ) {
14
14
let mut i = 10 ;
15
15
while i > 0 {
16
- Thread :: spawn ( { let i = i; move || child ( i) } ) ;
16
+ Thread :: scoped ( { let i = i; move || child ( i) } ) ;
17
17
i = i - 1 ;
18
18
}
19
19
println ! ( "main thread exiting" ) ;
Original file line number Diff line number Diff line change @@ -19,13 +19,13 @@ pub fn main() {
19
19
let ( tx, rx) = channel ( ) ;
20
20
let n = 100 u;
21
21
let mut expected = 0 u;
22
- for i in range ( 0 u, n) {
22
+ let _t = range ( 0 u, n) . map ( |i| {
23
+ expected += i;
23
24
let tx = tx. clone ( ) ;
24
- Thread :: spawn ( move || {
25
+ Thread :: scoped ( move || {
25
26
child ( & tx, i)
26
- } ) ;
27
- expected += i;
28
- }
27
+ } )
28
+ } ) . collect :: < Vec < _ > > ( ) ;
29
29
30
30
let mut actual = 0 u;
31
31
for _ in range ( 0 u, n) {
Original file line number Diff line number Diff line change @@ -37,7 +37,7 @@ fn f(tx: Sender<bool>) {
37
37
38
38
pub fn main ( ) {
39
39
let ( tx, rx) = channel ( ) ;
40
- let _t = Thread :: spawn ( move || f ( tx. clone ( ) ) ) ;
40
+ let _t = Thread :: scoped ( move || f ( tx. clone ( ) ) ) ;
41
41
println ! ( "hiiiiiiiii" ) ;
42
42
assert ! ( rx. recv( ) . unwrap( ) ) ;
43
43
}
You can’t perform that action at this time.
0 commit comments