Compare commits
2 commits
17899b934c
...
4503391b22
Author | SHA1 | Date | |
---|---|---|---|
4503391b22 | |||
f498b0cf78 |
2 changed files with 7 additions and 11 deletions
|
@ -62,18 +62,14 @@
|
|||
;;;; the core (classical, i.e. Hewitt) actor API
|
||||
|
||||
(defun create (bhv)
|
||||
(let ((tsk (async:make-task bhv :restartable t)))
|
||||
(start tsk bhv)
|
||||
tsk))
|
||||
(async:make-task bhv :restartable t))
|
||||
|
||||
(defgeneric send (tsk msg)
|
||||
(:method ((tsk async:mailbox) msg)
|
||||
;(util:lgi msg)
|
||||
(async:snd tsk msg)))
|
||||
|
||||
(defun become (bhv)
|
||||
(set-bhv *self* bhv)
|
||||
bhv)
|
||||
(set-bhv *self* bhv))
|
||||
|
||||
;;;; handling restartable tasks
|
||||
|
||||
|
@ -82,13 +78,14 @@
|
|||
(multiple-value-bind (msg ok) (async:try-rcv tsk)
|
||||
(if ok
|
||||
(if (eq (content msg) +quit-message+)
|
||||
(progn (async:set-status tsk :stopped) nil)
|
||||
(async:set-status tsk :stopped)
|
||||
(progn
|
||||
(async:set-status tsk :running)
|
||||
(let ((*self* tsk))
|
||||
(funcall bhv msg)
|
||||
(handler-case (funcall bhv msg)
|
||||
(error (error) (util:lg :error "handling message" msg error)))
|
||||
(ac-loop tsk (async:behavior tsk)))))
|
||||
(progn (async:set-status tsk :suspended) bhv))))
|
||||
(async:set-status tsk :suspended))))
|
||||
|
||||
(defmethod send ((tsk async:restartable-task) msg)
|
||||
(let ((status (async:get-status tsk)))
|
||||
|
|
|
@ -100,8 +100,7 @@
|
|||
(dolist (ctx (alx:hash-table-values (services *root*)))
|
||||
(funcall (config:shutdown (config ctx)) ctx))
|
||||
;(actor:stop *root*)
|
||||
(async:finish)
|
||||
)
|
||||
(async:finish))
|
||||
|
||||
(defun add-action (ctx pat hdlr)
|
||||
(let* ((acts (actions ctx))
|
||||
|
|
Loading…
Add table
Reference in a new issue