compatibility/collects/mzlib/cml.rkt
Robby Findler 6ae9dcae4a rewrote uses of mzlib/contract into racket/contract
(and other minor rackety when the occasion arose)

original commit: e8eea05afc79e82b465ce5d95cefc36b59ea42eb
2011-03-31 18:21:11 -05:00

36 lines
735 B
Racket

#lang racket/base
(require racket/contract)
(define (spawn thunk)
(thread/suspend-to-kill thunk))
(define (channel)
(make-channel))
(define (channel-recv-evt ch)
ch)
(define (channel-send-evt ch v)
(wrap-evt
(channel-put-evt ch v)
void))
(define (thread-done-evt th)
(thread-dead-evt th))
(define (current-time)
(current-inexact-milliseconds))
(define (time-evt t)
(alarm-evt t))
(provide/contract
(spawn ((-> any) . -> . thread?))
(channel (-> channel?))
(channel-recv-evt (channel? . -> . evt?))
(channel-send-evt (channel? any/c . -> . evt?))
(thread-done-evt (thread? . -> . evt?))
(current-time (-> number?))
(time-evt (real? . -> . evt?)))