diff options
author | Carl Lerche <me@carllerche.com> | 2020-03-20 21:06:50 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-03-20 21:06:50 -0700 |
commit | dd27f1a259033cc6328ccad1f73f753e52976a65 (patch) | |
tree | 266ab5d9e0a0e035da6f97e064c2c6295d8c2c98 /tests-integration/tests | |
parent | 5fd1b8f67c4a9976ed76f304484a4213283a3d6b (diff) |
rt: remove `unsafe` from shell runtime. (#2333)
Since the original shell runtime was implemented, utilities have been
added to encapsulate `unsafe`. The shell runtime is now able to use
those utilities and not include its own `unsafe` code.
Diffstat (limited to 'tests-integration/tests')
-rw-r--r-- | tests-integration/tests/rt_shell.rs | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/tests-integration/tests/rt_shell.rs b/tests-integration/tests/rt_shell.rs new file mode 100644 index 00000000..392c0519 --- /dev/null +++ b/tests-integration/tests/rt_shell.rs @@ -0,0 +1,32 @@ +#![warn(rust_2018_idioms)] +#![cfg(feature = "sync")] + +use tokio::runtime; +use tokio::sync::oneshot; + +use std::sync::mpsc; +use std::thread; + +#[test] +fn basic_shell_rt() { + let (feed_tx, feed_rx) = mpsc::channel::<oneshot::Sender<()>>(); + + let th = thread::spawn(move || { + for tx in feed_rx.iter() { + tx.send(()).unwrap(); + } + }); + + for _ in 0..1_000 { + let mut rt = runtime::Builder::new().build().unwrap(); + + let (tx, rx) = oneshot::channel(); + + feed_tx.send(tx).unwrap(); + + rt.block_on(rx).unwrap(); + } + + drop(feed_tx); + th.join().unwrap(); +} |