diff --git a/racket/syndicate/examples/actor/fs-shell.rkt b/racket/syndicate/examples/actor/fs-shell.rkt index 7755a64..bf68ec7 100644 --- a/racket/syndicate/examples/actor/fs-shell.rkt +++ b/racket/syndicate/examples/actor/fs-shell.rkt @@ -17,16 +17,14 @@ (define (print-prompt) (printf "> ") (flush-output)) - (define reader-count 0) - (define (generate-reader-id) - (begin0 reader-count - (set! reader-count (+ reader-count 1)))) - (actor (print-prompt) + (actor (field [reader-count 0]) + (print-prompt) (until (message (inbound (external-event e (list (? eof-object? _))))) (on (message (inbound (external-event e (list (? bytes? $bs))))) (match (string-split (string-trim (bytes->string/utf-8 bs))) [(list "open" name) - (define reader-id (generate-reader-id)) + (define reader-id (reader-count)) + (reader-count (+ (reader-count) 1)) (actor (printf "Reader ~a opening file ~v.\n" reader-id name) (until (message `(stop-watching ,name)) (on (asserted (file name $contents))