diff options
| author | Jorge Aparicio <jorge@japaric.io> | 2017-04-21 21:24:28 -0500 |
|---|---|---|
| committer | Jorge Aparicio <jorge@japaric.io> | 2017-04-21 21:24:28 -0500 |
| commit | eea803008390cbae307e873ce6d39e01d6367759 (patch) | |
| tree | c759d6c28a01fa8fa89abd52326720c5d3b5b8d3 /tests/cfail/race-1.rs | |
| parent | 1c82f1b1190cb40a3502d5b74a8c98775a788850 (diff) | |
reword the comments in compile-fail tests
Diffstat (limited to 'tests/cfail/race-1.rs')
| -rw-r--r-- | tests/cfail/race-1.rs | 41 |
1 files changed, 31 insertions, 10 deletions
diff --git a/tests/cfail/race-1.rs b/tests/cfail/race-1.rs index e9d030d..9037ed4 100644 --- a/tests/cfail/race-1.rs +++ b/tests/cfail/race-1.rs @@ -7,17 +7,38 @@ static R1: Resource<i32, C2> = 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) { - rtfm::critical(|ceil| { - let r1 = R1.borrow(&prio, &ceil); - //~^ error - }); +fn j2(_task: Task, prio: P3) { + rtfm::critical( + |ceil| { + // OK C2 (R1's ceiling) <= C16 (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 + } } |
