|
66 | 66 | //! use std::thread;
|
67 | 67 | //! use std::sync::mpmc::channel;
|
68 | 68 | //!
|
69 |
| -//! // Create a shared channel that can be sent along from many threads |
70 |
| -//! // where tx is the sending half (tx for transmission), and rx is the receiving |
71 |
| -//! // half (rx for receiving). |
72 |
| -//! let (tx, rx) = channel(); |
73 |
| -//! for i in 0..10 { |
74 |
| -//! let tx = tx.clone(); |
75 |
| -//! thread::spawn(move || { |
76 |
| -//! tx.send(i).unwrap(); |
77 |
| -//! }); |
78 |
| -//! } |
| 69 | +//! thread::scope(|s| { |
| 70 | +//! // Create a shared channel that can be sent along from many threads |
| 71 | +//! // where tx is the sending half (tx for transmission), and rx is the receiving |
| 72 | +//! // half (rx for receiving). |
| 73 | +//! let (tx, rx) = channel(); |
| 74 | +//! for i in 0..10 { |
| 75 | +//! let tx = tx.clone(); |
| 76 | +//! s.spawn(move || { |
| 77 | +//! tx.send(i).unwrap(); |
| 78 | +//! }); |
| 79 | +//! } |
79 | 80 | //!
|
80 |
| -//! for _ in 0..5 { |
81 |
| -//! let rx1 = rx.clone(); |
82 |
| -//! let rx2 = rx.clone(); |
83 |
| -//! thread::spawn(move || { |
84 |
| -//! let j = rx1.recv().unwrap(); |
85 |
| -//! assert!(0 <= j && j < 10); |
86 |
| -//! }); |
87 |
| -//! thread::spawn(move || { |
88 |
| -//! let j = rx2.recv().unwrap(); |
89 |
| -//! assert!(0 <= j && j < 10); |
90 |
| -//! }); |
91 |
| -//! } |
| 81 | +//! for _ in 0..5 { |
| 82 | +//! let rx1 = rx.clone(); |
| 83 | +//! let rx2 = rx.clone(); |
| 84 | +//! s.spawn(move || { |
| 85 | +//! let j = rx1.recv().unwrap(); |
| 86 | +//! assert!(0 <= j && j < 10); |
| 87 | +//! }); |
| 88 | +//! s.spawn(move || { |
| 89 | +//! let j = rx2.recv().unwrap(); |
| 90 | +//! assert!(0 <= j && j < 10); |
| 91 | +//! }); |
| 92 | +//! } |
| 93 | +//! }) |
92 | 94 | //! ```
|
93 | 95 | //!
|
94 | 96 | //! Propagating panics:
|
|
0 commit comments