aboutsummaryrefslogtreecommitdiff
path: root/tests/cfail/race-2.rs
diff options
context:
space:
mode:
authorJorge Aparicio <jorge@japaric.io>2017-04-21 21:24:28 -0500
committerJorge Aparicio <jorge@japaric.io>2017-04-21 21:24:28 -0500
commiteea803008390cbae307e873ce6d39e01d6367759 (patch)
treec759d6c28a01fa8fa89abd52326720c5d3b5b8d3 /tests/cfail/race-2.rs
parent1c82f1b1190cb40a3502d5b74a8c98775a788850 (diff)
reword the comments in compile-fail tests
Diffstat (limited to 'tests/cfail/race-2.rs')
-rw-r--r--tests/cfail/race-2.rs43
1 files changed, 31 insertions, 12 deletions
diff --git a/tests/cfail/race-2.rs b/tests/cfail/race-2.rs
index 55dedb6..6bd957e 100644
--- a/tests/cfail/race-2.rs
+++ b/tests/cfail/race-2.rs
@@ -8,21 +8,40 @@ static R2: Resource<i32, C4> = Resource::new(0);
fn j1(prio: P1) {
let ceil = prio.as_ceiling();
- ceil.raise(&R1, |ceil| {
- let r1 = R1.borrow(&prio, ceil);
+ ceil.raise(
+ &R1, |ceil| {
+ let r1 = R1.borrow(&prio, ceil);
- // Would preempt this critical section
- // rtfm::request(j2);
- });
+ // `j2` preempts this critical section
+ rtfm::request(j2);
+ }
+ );
}
-fn j2(prio: P3) {
+fn j2(_task: Task, prio: P3) {
let ceil = prio.as_ceiling();
- ceil.raise(&R2, |ceil| {
- // OK C2 (R1's ceiling) <= C4 (system ceiling)
- // BAD C2 (R1's ceiling) < P3 (j2's priority)
- let r1 = R1.borrow(&prio, ceil);
- //~^ error
- });
+ ceil.raise(
+ &R2, |ceil| {
+ // OK C2 (R1's ceiling) <= C4 (system ceiling)
+ // BAD C2 (R1's ceiling) < P3 (j2's priority)
+ let r1 = R1.borrow(&prio, ceil);
+ //~^ error
+ }
+ );
+}
+
+// glue
+extern crate cortex_m;
+
+use cortex_m::ctxt::Context;
+use cortex_m::interrupt::Nr;
+
+struct Task;
+
+unsafe impl Context for Task {}
+unsafe impl Nr for Task {
+ fn nr(&self) -> u8 {
+ 0
+ }
}