我正在尝试用ada语言为Cheddar编写用户定义的任务调度策略。但是当我写下面的代码时:
mul:=1.0;
for i in tasks_range loop
if tasks.ready(i)=true then
mul:=lcm(tasks.capacity(i),mul);
end if;
end loop;
它给出了一个错误:引发异常:CONSTRAINT_ERROR:expressions.adb:1876访问检查失败
我尝试将mul定义为整数,但它也失败了。
请帮忙。
我们需要很多信息才能真正为您提供有意义的帮助。作为一个猜测,鉴于Constraint_Error
例外,我会看看tasks_range
与tasks.ready
和tasks.capacity
相比的范围。 - 鉴于这看起来不像惯用的Ada代码,我猜你要么(a)试图从其他语言转录方法/算法,要么(b)你不熟悉Ada的task
系统。