FIXED: time_out output argument, exceptions (unhappy about once)
?- time_out(true,3600,time_out). yes ?- catch(time_out(throw(x),3600,R),x,length(L,L)). ERROR!! UNHANDLED EXCEPTION - message time_out unknown
This commit is contained in:
parent
c7066b43ec
commit
b38505cff2
@ -30,14 +30,9 @@ time_out(Goal, Time, Result) :-
|
|||||||
% enable alarm
|
% enable alarm
|
||||||
alarm(T.UT,throw(time_out),_),
|
alarm(T.UT,throw(time_out),_),
|
||||||
% launch goal and wait for signal
|
% launch goal and wait for signal
|
||||||
( catch(Goal, time_out, Result = time_out)
|
call_cleanup(
|
||||||
% make sure to disable alarm
|
catch( ( Result0 = success, once(Goal) ),
|
||||||
->
|
time_out,
|
||||||
alarm(0,_,_)
|
Result0 = time_out ),
|
||||||
;
|
alarm(0,_,_) ),
|
||||||
alarm(0,_,_),
|
Result = Result0.
|
||||||
fail
|
|
||||||
),
|
|
||||||
% just couldn't resist...
|
|
||||||
(Result = success -> true ; true).
|
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user