fix alarm/3 for floating point input (obs from Ashwin Srinivasan).

This commit is contained in:
Vitor Santos Costa 2010-02-27 10:10:23 +00:00
parent 73eadab2e9
commit d69902e986

View File

@ -249,6 +249,12 @@ alarm(Interval, Goal, Left) :-
integer(Interval), !,
on_signal(sig_alarm, _, Goal),
'$alarm'(Interval, 0, Left, _).
alarm(Number, Goal, Left) :-
float(Number), !,
Secs is integer(Number),
USecs is integer((Number-Secs)*1000000) mod 1000000,
on_signal(sig_alarm, _, Goal),
'$alarm'(Interval, 0, Left, _).
alarm(Interval.USecs, Goal, Left.LUSecs) :-
on_signal(sig_alarm, _, Goal),
'$alarm'(Interval, USecs, Left, LUSecs).