def apply_part_fmlp_bounds(all_tasks, preemptive=True): model = get_cpp_model(all_tasks) res = cpp.part_fmlp_bounds(model, preemptive) for i, t in enumerate(all_tasks): # remote blocking <=> suspension time t.suspended = res.get_remote_blocking(i) # all blocking, including local blocking t.blocked = res.get_blocking_term(i) t.local_blocking_count = res.get_local_count(i)
def apply_part_fmlp_bounds(all_tasks, preemptive=True): model = get_cpp_model(all_tasks) res = cpp.part_fmlp_bounds(model, preemptive) for i, t in enumerate(all_tasks): # remote blocking <=> suspension time t.suspended = res.get_remote_blocking(i) # all blocking, including local blocking t.blocked = res.get_blocking_term(i) t.local_blocking_count = res.get_local_count(i) return res
def test_fmlp_remote(self): res = cpp.part_fmlp_bounds(self.rsi, True) self.assertEqual(0, res.get_blocking_count(3)) self.assertEqual(0, res.get_blocking_term(3)) self.assertEqual(2, res.get_blocking_count(0)) self.assertEqual(5 + 7, res.get_blocking_term(0)) self.assertEqual(2, res.get_blocking_count(1)) self.assertEqual(3 + 7, res.get_blocking_term(1)) self.assertEqual(2, res.get_blocking_count(2)) self.assertEqual(3 + 5, res.get_blocking_term(2))