examples/example-0a.rkt
#lang racket/base
; Example 0a - Event Priorities

(require (planet williams/simulation/simulation))

(define (customer i)
  (printf "~a: customer ~a enters~n"
          (current-simulation-time) i)
  (work (random-flat 2.0 10.0))
  (printf "~a: customer ~a leaves~n"
          (current-simulation-time) i))

(define (run-simulation)
  (with-new-simulation-environment
   (schedule #:now (customer 0) #:priority -100)
   (schedule #:now (customer 1) #:priority 0)
   (schedule #:now (customer 2) #:priority 100)
   (schedule #:now (customer 3))
   (start-simulation)))

(run-simulation)