aboutsummaryrefslogtreecommitdiff
path: root/macros/src/codegen/resources.rs
diff options
context:
space:
mode:
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,
));
}