*dead-actor*, *dead-facet*, *dead-engine*

This commit is contained in:
Tony Garnock-Jones 2021-06-08 09:24:25 +02:00
parent 557a0fb499
commit 3751c07de6
2 changed files with 30 additions and 3 deletions

View File

@ -21,6 +21,7 @@
actor-add-exit-hook!
actor-remove-exit-hook!
actor-daemon!
*dead-actor*
facet?
facet-id
@ -30,6 +31,7 @@
facet-inert?
facet-on-stop!
facet-prevent-inert-check!
*dead-facet*
turn?
turn-id
@ -128,6 +130,28 @@
(define-logger syndicate/actor)
(define *dead-actor*
(actor (generate-actor-id)
'*dead-actor*
*dead-engine*
#t
(make-dataflow-graph)
'uninitialized
#t
'()))
(define *dead-facet*
(facet (generate-actor-id)
*dead-actor*
#f
(make-hasheq)
(make-hash)
'()
#f
0))
(set-actor-root! *dead-actor* *dead-facet*)
;;--------------------------------------------------------------------------
(define (actor-system boot-proc #:name [name 'actor-system])

View File

@ -7,7 +7,8 @@
engine-inhabitant-count
make-engine
adjust-inhabitant-count!
queue-task!)
queue-task!
*dead-engine*)
(require racket/match)
(require (only-in racket/exn exn->string))
@ -26,7 +27,7 @@
(define e (engine (generate-engine-id)
(thread (lambda ()
(thread-receive) ;; delay boot until we're ready
(log-syndicate/task-info "~a starting" e)
(log-syndicate/task-debug "~a starting" e)
(with-handlers ([exn? (handle-unexpected-task-runner-termination e)])
(let loop ()
(log-syndicate/task-debug
@ -42,7 +43,7 @@
[thunk
(thunk)
(loop)])))
(log-syndicate/task-info "~a stopping" e))))
(log-syndicate/task-debug "~a stopping" e))))
initial-inhabitant-count))
(thread-send (engine-thread e) 'boot)
e)
@ -57,3 +58,5 @@
(define (queue-task! e thunk)
(thread-send (engine-thread e) thunk))
(define *dead-engine* (make-engine 0))