diff --git a/both-services.rkt b/both-services.rkt new file mode 100644 index 0000000..960ac6f --- /dev/null +++ b/both-services.rkt @@ -0,0 +1,17 @@ +#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")))