X-Git-Url: https://thelambdalab.xyz/gitweb/index.cgi?p=sam.git;a=blobdiff_plain;f=sam.scm;h=1d23712a9baf50af8e6502ddaaae708d3be6f53b;hp=93906b958bd0472bfe4ff5583acdc7266ab8cca9;hb=5d2d076345efb45ced333e832d1cbf766bcd5e8a;hpb=3001c497e5536bb767303d96a6b65e2ad040e754 diff --git a/sam.scm b/sam.scm index 93906b9..1d23712 100644 --- a/sam.scm +++ b/sam.scm @@ -11,6 +11,7 @@ (chicken port) (chicken process-context) (chicken file) + (chicken condition) matchable srfi-18 ; threads srfi-69 ; hash-table @@ -203,7 +204,15 @@ (define (boot-sam) (start-console) (start-network-listener) - (send-message (make-actor main-beh) (make-actor system-beh)) + (let ((system (make-actor system-beh)) + (main #f)) + (condition-case + (begin + (set! main (make-actor main-beh))) + ((exn) + (print "Error starting main actor. Is main-beh defined?") + (exit 1))) + (send-message main system)) (start-scheduler)) (define (print-usage) @@ -222,14 +231,14 @@ (loop rest)) (((or "-n" "--hostname") hstr rest ...) (set! sam-host hstr) - (loop rest) - (((? file-exists? filename) rest ...)) + (loop rest)) + (((? file-exists? filename) rest ...) (print* "Loading " filename "...") (load filename) (print " done.") (loop rest)) (() - (boot-sam host port main-beh)) + (boot-sam)) (else (print "Unrecognised argument '" (car args) "'.\n") (print-usage))))