diff --git a/util/async.lisp b/util/async.lisp index e7e82cd..33675c3 100644 --- a/util/async.lisp +++ b/util/async.lisp @@ -36,13 +36,11 @@ (defun submit-task (ch job) (lp:submit-task ch job)) -;;;; not used at the moment - -(defun receive-result - (lp:receive-result ch)) - ;;;; task class and related functions +(defun receive-result (ch) + (lp:receive-result ch)) + (defclass task () ((job :reader job :initarg :job) (taskid :reader taskid :initform (gensym "TSK")) @@ -60,4 +58,6 @@ (submit-task (channel tsk) (job tsk))) (defun wait-receive (tsk) - (lp:receive-result (channel tsk))) + (let ((data (receive-result (channel tsk)))) + (setf (status tsk) :done) + data))