racket-ssh-2012/both-services.rkt

18 lines
544 B
Racket

#lang racket/base
(define (load-in-background description module)
(printf "Starting ~s...\n" description)
(thread (lambda () (dynamic-require module #f))))
(define (wait-for-completion threads)
(when (pair? threads)
(apply sync (map (lambda (t)
(handle-evt (thread-dead-evt t)
(lambda (dummy)
(wait-for-completion (remove t threads)))))
threads))))
(wait-for-completion
(list (load-in-background "DNS server" "../racket-dns/driver.rkt")
(load-in-background "SSH server" "repl-server.rkt")))