# HG changeset patch # User samer # Date 1328786012 0 # Node ID af1ebea468b5ac6c0b32e6429ce16892075a8c00 # Parent 6beef97eda32840e42de9e9bde5467a7c7f3c639 Now using library(debug) for messages. Removed some cruft. diff -r 6beef97eda32 -r af1ebea468b5 qutils.pl --- a/qutils.pl Tue Feb 07 23:21:32 2012 +0000 +++ b/qutils.pl Thu Feb 09 11:13:32 2012 +0000 @@ -9,6 +9,7 @@ :- meta_predicate with_message_or_timeout(+,?,0,0). :- use_module(library(time)). +:- use_module(library(debug)). %% get_message_or_timeout( +TimeOut, -Msg) is det. % @@ -23,50 +24,32 @@ get_message_or_timeout(Deadline,Msg) :- get_time(Now), - ( Now>=Deadline -> Msg=timeout %, writeln(elapsed) + ( Now>=Deadline + -> Msg=timeout, + debug(qutils,'deadline already missed.',[]) ; Timeout is Deadline-Now, thread_self(Thread), - thread_get_message(Thread,Msg,[timeout(Timeout)]) + thread_get_message(Thread,Msg,[timeout(Timeout)]), + debug(qutils,'got message: ~w.',[Msg]) ). :- else. get_message_or_timeout(Deadline,Msg) :- get_time(Now), - ( Now>=Deadline -> Msg=timeout %, writeln(elapsed) + ( Now>=Deadline + -> Msg=timeout, + debug(qutils,'deadline already missed.',[]) ; thread_self(Thread), setup_call_cleanup( alarm_at(Deadline, thread_send_message(Thread,timeout), Id), thread_get_message(Thread,Msg), - time:remove_alarm_notrace(Id)) - %,(Msg\=timeout -> writeln(msg:Msg); true) + time:remove_alarm_notrace(Id)), + debug(qutils,'got message: ~w.',[Msg]) ). :-endif. -/* -get_message_or_timeout(Deadline,Msg) :- - get_time(Now), - ( Now>=Deadline -> Msg=timeout, writeln(elapsed) - ; catch( - deadline_get_message(Deadline,Msg), - time_limit_exceeded, - Msg=timeout) - %, (Msg\=timeout -> writeln(msg:Msg); true) - ). - -deadline_get_message(Deadline,Msg) :- - setup_call_cleanup( - alarm_at(Deadline, ding_ding, Id), - thread_get_message(Msg), - time:remove_alarm_notrace(Id)). - -ding_ding :- throw(time_limit_exceeded). - - -*/ - - %% with_message( Msg, :Goal) is nondet. % @@ -111,4 +94,3 @@ ; writeln('*') ). -