reference: cite Concurrent ML

This commit is contained in:
Matthew Flatt 2020-10-26 07:31:18 -06:00
parent 45b0aa21d1
commit fd2ffe3170
3 changed files with 10 additions and 1 deletions

View File

@ -15,7 +15,7 @@ A @deftech{synchronizable event} (or just @defterm{event} for short)
works with the @racket[sync] procedure to coordinate synchronization
among threads. Certain kinds of objects double as events, including
ports and threads. Other kinds of objects exist only for their use as
events.
events. Racket's event system is based on Concurrent ML @cite{Reppy99}.
At any point in time, an event is either @deftech{ready for
synchronization}, or it is not; depending on the kind of event and how

View File

@ -186,6 +186,13 @@ The @racketmodname[racket] library combines
#:location "Principles of Programming Languages"
#:date "1991")
(bib-entry #:key "Reppy99"
#:author "John H. Reppy"
#:title "Concurrent Programming in ML"
#:is-book? #t
#:location "Cambridge University Press"
#:date "1999")
(bib-entry #:key "Shan04"
#:author "Ken Shan"
#:title "Shift to Control"

View File

@ -68,7 +68,9 @@
(alarm-evt (+ timeout (current-inexact-milliseconds))))
(lambda (x)
(log "alarm woke up, waiting to suspend engine" w)
(log-error "TRYING TIMEOUT")
(semaphore-wait can-stop-lock)
(log-error "DOING TIMEOUT")
(log "suspending engine" w)
(thread-suspend worker)
(semaphore-post can-stop-lock)