*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-add-exit-hook!
actor-remove-exit-hook! actor-remove-exit-hook!
actor-daemon! actor-daemon!
*dead-actor*
facet? facet?
facet-id facet-id
@ -30,6 +31,7 @@
facet-inert? facet-inert?
facet-on-stop! facet-on-stop!
facet-prevent-inert-check! facet-prevent-inert-check!
*dead-facet*
turn? turn?
turn-id turn-id
@ -128,6 +130,28 @@
(define-logger syndicate/actor) (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]) (define (actor-system boot-proc #:name [name 'actor-system])

View File

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