aboutsummaryrefslogtreecommitdiff
path: root/examples/std/src/bin/tcp_accept.rs
diff options
context:
space:
mode:
authorDario Nieuwenhuis <[email protected]>2024-09-16 19:40:22 +0000
committerGitHub <[email protected]>2024-09-16 19:40:22 +0000
commite90b3bc4494682ae23d5839328ab950e34ca7cfe (patch)
tree6e38af1d99f3c5fa1befcfd853c7afa5a7759c75 /examples/std/src/bin/tcp_accept.rs
parenta23f56b3ddc84a7e87e4b8750df26b91a2cb9637 (diff)
parent73aa40a9b9ab13655aa39969494dd377f57b699e (diff)
Merge pull request #3329 from embassy-rs/net-deinit
net: refactor to simplify lifetimes/generics.
Diffstat (limited to 'examples/std/src/bin/tcp_accept.rs')
-rw-r--r--examples/std/src/bin/tcp_accept.rs11
1 files changed, 5 insertions, 6 deletions
diff --git a/examples/std/src/bin/tcp_accept.rs b/examples/std/src/bin/tcp_accept.rs
index 39b29a449..5d36b739d 100644
--- a/examples/std/src/bin/tcp_accept.rs
+++ b/examples/std/src/bin/tcp_accept.rs
@@ -3,7 +3,7 @@ use core::fmt::Write as _;
3use clap::Parser; 3use clap::Parser;
4use embassy_executor::{Executor, Spawner}; 4use embassy_executor::{Executor, Spawner};
5use embassy_net::tcp::TcpSocket; 5use embassy_net::tcp::TcpSocket;
6use embassy_net::{Config, Ipv4Address, Ipv4Cidr, Stack, StackResources}; 6use embassy_net::{Config, Ipv4Address, Ipv4Cidr, StackResources};
7use embassy_net_tuntap::TunTapDevice; 7use embassy_net_tuntap::TunTapDevice;
8use embassy_time::{Duration, Timer}; 8use embassy_time::{Duration, Timer};
9use embedded_io_async::Write as _; 9use embedded_io_async::Write as _;
@@ -24,8 +24,8 @@ struct Opts {
24} 24}
25 25
26#[embassy_executor::task] 26#[embassy_executor::task]
27async fn net_task(stack: &'static Stack<TunTapDevice>) -> ! { 27async fn net_task(mut runner: embassy_net::Runner<'static, TunTapDevice>) -> ! {
28 stack.run().await 28 runner.run().await
29} 29}
30 30
31#[derive(Default)] 31#[derive(Default)]
@@ -62,12 +62,11 @@ async fn main_task(spawner: Spawner) {
62 let seed = u64::from_le_bytes(seed); 62 let seed = u64::from_le_bytes(seed);
63 63
64 // Init network stack 64 // Init network stack
65 static STACK: StaticCell<Stack<TunTapDevice>> = StaticCell::new();
66 static RESOURCES: StaticCell<StackResources<3>> = StaticCell::new(); 65 static RESOURCES: StaticCell<StackResources<3>> = StaticCell::new();
67 let stack = &*STACK.init(Stack::new(device, config, RESOURCES.init(StackResources::new()), seed)); 66 let (stack, runner) = embassy_net::new(device, config, RESOURCES.init(StackResources::new()), seed);
68 67
69 // Launch network task 68 // Launch network task
70 spawner.spawn(net_task(stack)).unwrap(); 69 spawner.spawn(net_task(runner)).unwrap();
71 70
72 // Then we can use it! 71 // Then we can use it!
73 let mut rx_buffer = [0; 4096]; 72 let mut rx_buffer = [0; 4096];