racket-matrix-2012/os-userland-example.rkt

25 lines
618 B
Racket

#lang racket/base
;; Trivial example of os-userland.
(require "os-userland-stdlib.rkt")
(define (main)
(spawn display-driver)
(spawn read-line-driver)
(spawn sleep-driver)
(spawn (userland (lambda ()
(display "HI\n")
(sleep 1000)
(display "THERE\n"))))
(poll) ;; Wait for drivers to become ready (!)
;; The Right Way to do this is to have presence integrated with subscription
(display "Hello! Enter your name:\n")
(define name (rpc 'read-line))
(display "Hello, ")
(display name)
(display "!\n")
(sleep 1000)
(display "Goodbye\n"))
(ground-vm/stdlib (userland main))