|
|
|
|
@ -1,6 +1,6 @@
|
|
|
|
|
#lang racket/base |
|
|
|
|
|
|
|
|
|
(provide spawn-warden-pair |
|
|
|
|
(provide spawn-warding-pair |
|
|
|
|
ward |
|
|
|
|
incantify) |
|
|
|
|
|
|
|
|
|
@ -22,7 +22,7 @@
|
|
|
|
|
;; Returns two values to its continuation: |
|
|
|
|
;; - a warden, to be used with the ward procedure below |
|
|
|
|
;; - an incanter, to access actors which have warded methods |
|
|
|
|
(define (spawn-warden-pair #:async? [async? #f]) |
|
|
|
|
(define (spawn-warding-pair #:async? [async? #f]) |
|
|
|
|
(define-values (seal unseal sealed?) |
|
|
|
|
(make-sealer-triplet 'ward)) |
|
|
|
|
;; When invoked, the warden returns either: |
|
|
|
|
@ -116,7 +116,7 @@
|
|
|
|
|
(actormap-run! am |
|
|
|
|
(lambda () |
|
|
|
|
(define-values (admin-warden admin-incanter) |
|
|
|
|
(spawn-warden-pair)) |
|
|
|
|
(spawn-warding-pair)) |
|
|
|
|
(list (spawn ^inbox "My First Inbox" admin-warden) |
|
|
|
|
admin-incanter)))) |
|
|
|
|
|
|
|
|
|
@ -146,7 +146,7 @@
|
|
|
|
|
(actormap-run! am |
|
|
|
|
(lambda () |
|
|
|
|
(define-values (_some-warden some-incanter) |
|
|
|
|
(spawn-warden-pair)) |
|
|
|
|
(spawn-warding-pair)) |
|
|
|
|
some-incanter))) |
|
|
|
|
|
|
|
|
|
(test-exn |
|
|
|
|
|