2014-08-06 19:16:50 +00:00
|
|
|
#lang racket/base
|
2013-03-29 03:00:29 +00:00
|
|
|
|
|
|
|
(require racket/match)
|
2014-08-06 19:16:50 +00:00
|
|
|
(require "structs.rkt")
|
2013-03-29 03:00:29 +00:00
|
|
|
(require "roles.rkt")
|
|
|
|
(require "vm.rkt")
|
|
|
|
(require "actions.rkt")
|
|
|
|
|
|
|
|
(provide make-nested-vm)
|
|
|
|
|
2014-08-06 19:16:50 +00:00
|
|
|
;; make-nested-vm : (All (State) (PID -> process-spec) Any -> (spawn State))
|
2013-03-29 03:00:29 +00:00
|
|
|
(define (make-nested-vm make-boot debug-name)
|
|
|
|
(spawn (process-spec (lambda (nested-vm-pid)
|
2014-08-06 19:16:50 +00:00
|
|
|
(lambda (k) (k (run-vm (make-vm (make-boot nested-vm-pid)))))))
|
2013-03-29 03:00:29 +00:00
|
|
|
#f
|
|
|
|
debug-name))
|
|
|
|
|
|
|
|
;; TODO: (process-spec: NewProcessState (pid-id) transition-expr)
|