aboutsummaryrefslogtreecommitdiff
path: root/embassy-executor-macros/src/macros/task.rs
diff options
context:
space:
mode:
authorMatthew Tran <[email protected]>2025-03-29 02:45:48 -0500
committerMatthew Tran <[email protected]>2025-03-29 03:52:00 -0500
commit034e9fc218f1a348f451f56a5b9f3941fc046b1a (patch)
treec7d366b388eaee60fa7f8ebb5a077bf42df20898 /embassy-executor-macros/src/macros/task.rs
parent35b353ab948256f4ae959767a7652c24bd42cd57 (diff)
Move macro helper functions to embassy-executor
Diffstat (limited to 'embassy-executor-macros/src/macros/task.rs')
-rw-r--r--embassy-executor-macros/src/macros/task.rs35
1 files changed, 3 insertions, 32 deletions
diff --git a/embassy-executor-macros/src/macros/task.rs b/embassy-executor-macros/src/macros/task.rs
index e5523c5cd..91d6beee8 100644
--- a/embassy-executor-macros/src/macros/task.rs
+++ b/embassy-executor-macros/src/macros/task.rs
@@ -145,35 +145,6 @@ pub fn run(args: TokenStream, item: TokenStream) -> TokenStream {
145 }; 145 };
146 #[cfg(not(feature = "nightly"))] 146 #[cfg(not(feature = "nightly"))]
147 let mut task_outer_body = quote! { 147 let mut task_outer_body = quote! {
148 // We use Fut instead of F::Fut because F::Fut causes the compiler to generate some ugly
149 // unrelated errors when the task has a compile error.
150 const fn __task_pool_size<F, Args, Fut>(_: F) -> usize
151 where
152 F: #embassy_executor::_export::TaskFn<Args, Fut = Fut>,
153 Fut: ::core::future::Future + 'static,
154 {
155 ::core::mem::size_of::<
156 #embassy_executor::raw::TaskPool<Fut, POOL_SIZE>
157 >()
158 }
159 const fn __task_pool_align<F, Args, Fut>(_: F) -> usize
160 where
161 F: #embassy_executor::_export::TaskFn<Args, Fut = Fut>,
162 Fut: ::core::future::Future + 'static,
163 {
164 ::core::mem::align_of::<
165 #embassy_executor::raw::TaskPool<Fut, POOL_SIZE>
166 >()
167 }
168
169 const fn __task_pool_new<F, Args, Fut>(_: F) -> #embassy_executor::raw::TaskPool<Fut, POOL_SIZE>
170 where
171 F: #embassy_executor::_export::TaskFn<Args, Fut = Fut>,
172 Fut: ::core::future::Future + 'static,
173 {
174 #embassy_executor::raw::TaskPool::new()
175 }
176
177 const fn __task_pool_get<F, Args, Fut>(_: F) -> &'static #embassy_executor::raw::TaskPool<Fut, POOL_SIZE> 148 const fn __task_pool_get<F, Args, Fut>(_: F) -> &'static #embassy_executor::raw::TaskPool<Fut, POOL_SIZE>
178 where 149 where
179 F: #embassy_executor::_export::TaskFn<Args, Fut = Fut>, 150 F: #embassy_executor::_export::TaskFn<Args, Fut = Fut>,
@@ -184,9 +155,9 @@ pub fn run(args: TokenStream, item: TokenStream) -> TokenStream {
184 155
185 const POOL_SIZE: usize = #pool_size; 156 const POOL_SIZE: usize = #pool_size;
186 static POOL: #embassy_executor::_export::TaskPoolHolder< 157 static POOL: #embassy_executor::_export::TaskPoolHolder<
187 {__task_pool_size(#task_inner_ident)}, 158 {#embassy_executor::_export::task_pool_size::<_, _, _, POOL_SIZE>(#task_inner_ident)},
188 {__task_pool_align(#task_inner_ident)}, 159 {#embassy_executor::_export::task_pool_align::<_, _, _, POOL_SIZE>(#task_inner_ident)},
189 > = unsafe { ::core::mem::transmute(__task_pool_new(#task_inner_ident)) }; 160 > = unsafe { ::core::mem::transmute(#embassy_executor::_export::task_pool_new::<_, _, _, POOL_SIZE>(#task_inner_ident)) };
190 unsafe { __task_pool_get(#task_inner_ident)._spawn_async_fn(move || #task_inner_ident(#(#full_args,)*)) } 161 unsafe { __task_pool_get(#task_inner_ident)._spawn_async_fn(move || #task_inner_ident(#(#full_args,)*)) }
191 }; 162 };
192 163