*dead-actor*, *dead-facet*, *dead-engine*
This commit is contained in:
parent
557a0fb499
commit
3751c07de6
|
@ -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])
|
||||||
|
|
|
@ -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))
|
||||||
|
|
Loading…
Reference in New Issue