diff options
author | 2017-12-09 15:13:42 +0000 | |
---|---|---|
committer | 2017-12-09 15:13:42 +0000 | |
commit | 0f5784c2401d4b12004f34345e721598fa21219a (patch) | |
tree | 53fd6aaad6757a60762ec687207ea956cbfede36 /tests/cfail/resource-not-send-sync.rs | |
parent | 40ebb93cc6ec8533d4532853c3fd01693af09d8e (diff) | |
parent | 62c5c1ae431790e36ffeb0eebba75dfabb5dbd76 (diff) | |
download | rtic-0f5784c2401d4b12004f34345e721598fa21219a.tar.gz rtic-0f5784c2401d4b12004f34345e721598fa21219a.tar.zst rtic-0f5784c2401d4b12004f34345e721598fa21219a.zip |
Auto merge of #57 - japaric:not-sync, r=japaric
make resource proxies not Sync
None
Diffstat (limited to 'tests/cfail/resource-not-send-sync.rs')
-rw-r--r-- | tests/cfail/resource-not-send-sync.rs | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/tests/cfail/resource-not-send-sync.rs b/tests/cfail/resource-not-send-sync.rs new file mode 100644 index 00000000..775c78ae --- /dev/null +++ b/tests/cfail/resource-not-send-sync.rs @@ -0,0 +1,54 @@ +#![deny(unsafe_code)] +#![deny(warnings)] +#![feature(const_fn)] +#![feature(proc_macro)] +#![no_std] + +extern crate cortex_m_rtfm as rtfm; +extern crate stm32f103xx; + +use rtfm::{app, Resource, Threshold}; + +app! { + device: stm32f103xx, + + resources: { + static SHARED: bool = false; + }, + + tasks: { + EXTI0: { + path: exti0, + priority: 1, + resources: [SHARED], + }, + + EXTI1: { + path: exti1, + priority: 2, + resources: [SHARED], + }, + }, +} + +fn init(_p: init::Peripherals, _r: init::Resources) {} + +fn idle() -> ! { + loop {} +} + +fn is_send<T>(_: &T) where T: Send {} +fn is_sync<T>(_: &T) where T: Sync {} + +fn exti0(_t: &mut Threshold, r: EXTI0::Resources) { + // ERROR resource proxies can't be shared between tasks + is_sync(&r.SHARED); + //~^ error the trait bound `*const (): core::marker::Sync` is not satisfied + + // ERROR resource proxies are not `Send`able across tasks + is_send(&r.SHARED); + //~^ error the trait bound `*const (): core::marker::Send` is not satisfied +} + +fn exti1(_t: &mut Threshold, _r: EXTI1::Resources) { +} |