diff options
author | 2021-04-18 14:35:11 -0700 | |
---|---|---|
committer | 2021-04-18 14:35:11 -0700 | |
commit | bc10fe266d7a3fbae0235cee23d62f75877bf6c4 (patch) | |
tree | 194d5268b165f21c925fb4523a67233c33c2bba5 /macros/src | |
parent | b8b13573aebfa6719e25f0e2c8b1c28cdb66301a (diff) | |
download | rtic-bc10fe266d7a3fbae0235cee23d62f75877bf6c4.tar.gz rtic-bc10fe266d7a3fbae0235cee23d62f75877bf6c4.tar.zst rtic-bc10fe266d7a3fbae0235cee23d62f75877bf6c4.zip |
reclaim stack space used in init
Diffstat (limited to 'macros/src')
-rw-r--r-- | macros/src/codegen.rs | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/macros/src/codegen.rs b/macros/src/codegen.rs index cf728a7d..21db1438 100644 --- a/macros/src/codegen.rs +++ b/macros/src/codegen.rs @@ -66,9 +66,17 @@ pub fn app(app: &App, analysis: &Analysis, extra: &Extra) -> TokenStream2 { #(#pre_init_stmts)* - #call_init + #[inline(never)] + fn __rtic_init_resources<F>(f: F) where F: FnOnce() { + f(); + } + + // Wrap late_init_stmts in a function to ensure that stack space is reclaimed. + __rtic_init_resources(||{ + #call_init - #(#post_init_stmts)* + #(#post_init_stmts)* + }); #call_idle } |