Previous: Rendezvous-synchronized cells, Up: Concurrent ML


5.4.6 Concurrent ML to Scheme correspondence

CML name Scheme name
structure CML structure threads
version (no equivalent)
banner (no equivalent)
spawnc (no equivalent; use spawn and lambda)
spawn spawn
yield relinquish-timeslice
exit terminate-current-thread
getTid current-thread
sameTid eq? (R5RS)
tidToString (no equivalent; use the writer)
structure threads-internal
hashTid thread-uid
structure rendezvous
wrap wrap
guard guard
withNack with-nack
choose choose
sync sync
select select
never never-rv
alwaysEvt always-rv
joinEvt (no equivalent)
structure rendezvous-channels
channel make-channel
sameChannel eq? (R5RS)
send send
recv receive
sendEvt send-rv
recvEvt receive-rv
sendPoll (no equivalent)
recvPoll (no equivalent)
structure rendezvous-time
timeOutEvt after-time-rv
atTimeEvt at-real-time-rv
structure SyncVar structure rendezvous-placeholders
exception Put (no equivalent)
iVar make-placeholder
iPut placeholder-set!
iGet placeholder-value
iGetEvt placeholder-value-rv
iGetPoll (no equivalent)
sameIVar eq? (R5RS)
structure jars
mVar make-jar
mVarInit (no equivalent)
mPut jar-put!
mTake jar-take
mTakeEvt jar-take-rv
mGet (no equivalent)
mGetEvt (no equivalent)
mTakePoll (no equivalent)
mGetPoll (no equivalent)
mSwap (no equivalent)
mSwapEvt (no equivalent)
sameMVar eq? (R5RS)
structure Mailbox structure rendezvous-async-channels
mailbox make-async-channel
sameMailbox eq? (R5RS)
send send-async
recv receive-async
recvEvt receive-async-rv
recvPoll (no equivalent)