From 9cf5deadeb110cf76b1e35219d5be7eb9a3eb572 Mon Sep 17 00:00:00 2001 From: Tony Garnock-Jones Date: Sun, 6 Nov 2011 08:26:52 -0500 Subject: [PATCH] Driver of combined services --- both-services.rkt | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 both-services.rkt 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")))