25 lines
730 B
Racket
25 lines
730 B
Racket
#lang racket/base
|
|
(require racket/place/distributed racket/place)
|
|
|
|
(define (fib n)
|
|
(if (<= n 1) n (+ (fib (- n 1)) (fib (- n 2)))))
|
|
|
|
(provide work)
|
|
(define (work)
|
|
(place ch
|
|
(place-channel-put ch (fib (place-channel-get ch)))))
|
|
|
|
(module+ main
|
|
(define places
|
|
(for/list ([host '("localhost" "localhost" "localhost" "localhost")]
|
|
[port (in-naturals 12345)])
|
|
(define-values [node place]
|
|
(spawn-node-supervise-place-at host #:listen-port port #:thunk #t
|
|
(quote-module-path "..") 'work))
|
|
place))
|
|
(message-router
|
|
(after-seconds 1
|
|
(for ([p places]) (*channel-put p 42))
|
|
(printf "Results: ~s\n" (map *channel-get places))
|
|
(exit))))
|