aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorUlf Lilleengen <[email protected]>2021-09-02 14:45:20 +0200
committerUlf Lilleengen <[email protected]>2021-09-02 14:45:54 +0200
commit5f04d6e6c51fd5f13c04aa122ba9811d97d8a116 (patch)
treeda8a7d110cdec6f451f83863450911bc59a0f73f
parenta3beb1ca3da5c6760f2c752f660fcee545793f12 (diff)
Fix embassy::main macros for std target
-rw-r--r--embassy-macros/src/lib.rs4
-rw-r--r--embassy/Cargo.toml2
-rw-r--r--examples/std/src/bin/tick.rs13
3 files changed, 6 insertions, 13 deletions
diff --git a/embassy-macros/src/lib.rs b/embassy-macros/src/lib.rs
index 54cf6fb8a..ab327aced 100644
--- a/embassy-macros/src/lib.rs
+++ b/embassy-macros/src/lib.rs
@@ -386,7 +386,6 @@ pub fn main(args: TokenStream, item: TokenStream) -> TokenStream {
386 }; 386 };
387 387
388 let embassy_path = macro_args.embassy_prefix.append("embassy"); 388 let embassy_path = macro_args.embassy_prefix.append("embassy");
389 let embassy_std_path = macro_args.embassy_prefix.append("embassy_std");
390 389
391 let mut fail = false; 390 let mut fail = false;
392 if task_fn.sig.asyncness.is_none() { 391 if task_fn.sig.asyncness.is_none() {
@@ -427,7 +426,6 @@ pub fn main(args: TokenStream, item: TokenStream) -> TokenStream {
427 let task_fn_body = task_fn.block.clone(); 426 let task_fn_body = task_fn.block.clone();
428 427
429 let embassy_path = embassy_path.path(); 428 let embassy_path = embassy_path.path();
430 let embassy_std_path = embassy_std_path.path();
431 let embassy_prefix_lit = macro_args.embassy_prefix.literal(); 429 let embassy_prefix_lit = macro_args.embassy_prefix.literal();
432 430
433 let result = quote! { 431 let result = quote! {
@@ -441,7 +439,7 @@ pub fn main(args: TokenStream, item: TokenStream) -> TokenStream {
441 ::core::mem::transmute(t) 439 ::core::mem::transmute(t)
442 } 440 }
443 441
444 let mut executor = #embassy_std_path::Executor::new(); 442 let mut executor = #embassy_path::executor::Executor::new();
445 let executor = unsafe { make_static(&mut executor) }; 443 let executor = unsafe { make_static(&mut executor) };
446 444
447 executor.run(|spawner| { 445 executor.run(|spawner| {
diff --git a/embassy/Cargo.toml b/embassy/Cargo.toml
index 0ff71ce1d..ecb53325f 100644
--- a/embassy/Cargo.toml
+++ b/embassy/Cargo.toml
@@ -7,7 +7,7 @@ resolver = "2"
7 7
8[features] 8[features]
9default = [] 9default = []
10std = ["futures/std", "embassy-traits/std", "time", "time-tick-1mhz"] 10std = ["futures/std", "embassy-traits/std", "time", "time-tick-1mhz", "embassy-macros/std"]
11 11
12# Enable `embassy::time` module. 12# Enable `embassy::time` module.
13# NOTE: This feature is only intended to be enabled by crates providing the time driver implementation. 13# NOTE: This feature is only intended to be enabled by crates providing the time driver implementation.
diff --git a/examples/std/src/bin/tick.rs b/examples/std/src/bin/tick.rs
index 385b317d4..7de78040f 100644
--- a/examples/std/src/bin/tick.rs
+++ b/examples/std/src/bin/tick.rs
@@ -1,9 +1,8 @@
1#![feature(type_alias_impl_trait)] 1#![feature(type_alias_impl_trait)]
2#![allow(incomplete_features)] 2#![allow(incomplete_features)]
3 3
4use embassy::executor::Executor; 4use embassy::executor::Spawner;
5use embassy::time::{Duration, Timer}; 5use embassy::time::{Duration, Timer};
6use embassy::util::Forever;
7use log::*; 6use log::*;
8 7
9#[embassy::task] 8#[embassy::task]
@@ -14,16 +13,12 @@ async fn run() {
14 } 13 }
15} 14}
16 15
17static EXECUTOR: Forever<Executor> = Forever::new(); 16#[embassy::main]
18 17async fn main(spawner: Spawner) {
19fn main() {
20 env_logger::builder() 18 env_logger::builder()
21 .filter_level(log::LevelFilter::Debug) 19 .filter_level(log::LevelFilter::Debug)
22 .format_timestamp_nanos() 20 .format_timestamp_nanos()
23 .init(); 21 .init();
24 22
25 let executor = EXECUTOR.put(Executor::new()); 23 spawner.spawn(run()).unwrap();
26 executor.run(|spawner| {
27 spawner.spawn(run()).unwrap();
28 });
29} 24}