aboutsummaryrefslogtreecommitdiff
path: root/macros/src/codegen/resources.rs
diff options
context:
space:
mode:
authorGravatar Emil Fresk <emil.fresk@gmail.com> 2020-10-22 21:36:32 +0200
committerGravatar Emil Fresk <emil.fresk@gmail.com> 2020-10-23 08:38:18 +0200
commite8eca4be37a2fe1af25b203ace5e99b31fcc3972 (patch)
treec70a80e9bcacb54838f09141bd1d2b27e844760f /macros/src/codegen/resources.rs
parentb3aa9e99a975eca637582f31de20fe11ae8f7d64 (diff)
downloadrtic-e8eca4be37a2fe1af25b203ace5e99b31fcc3972.tar.gz
rtic-e8eca4be37a2fe1af25b203ace5e99b31fcc3972.tar.zst
rtic-e8eca4be37a2fe1af25b203ace5e99b31fcc3972.zip
Now all locks are symmetric
Test fixes Fix test Fix comment
Diffstat (limited to 'macros/src/codegen/resources.rs')
-rw-r--r--macros/src/codegen/resources.rs12
1 files changed, 10 insertions, 2 deletions
diff --git a/macros/src/codegen/resources.rs b/macros/src/codegen/resources.rs
index 0db4f728..76871e59 100644
--- a/macros/src/codegen/resources.rs
+++ b/macros/src/codegen/resources.rs
@@ -49,7 +49,8 @@ pub fn codegen(
));
}
- if let Some(Ownership::Contended { ceiling }) = analysis.ownerships.get(name) {
+ let r_prop = &res.properties;
+ if !r_prop.task_local && !r_prop.lock_free {
mod_resources.push(quote!(
#[allow(non_camel_case_types)]
#(#cfgs)*
@@ -83,13 +84,20 @@ pub fn codegen(
)
};
+ let ceiling = match analysis.ownerships.get(name) {
+ Some(Ownership::Owned { priority }) => *priority,
+ Some(Ownership::CoOwned { priority }) => *priority,
+ Some(Ownership::Contended { ceiling }) => *ceiling,
+ None => 0,
+ };
+
mod_app.push(util::impl_mutex(
extra,
cfgs,
true,
name,
quote!(#ty),
- *ceiling,
+ ceiling,
ptr,
));
}