sunterlib/cml/packages.scm

97 lines
2.3 KiB
Scheme
Raw Normal View History

(define-interface trans-ids-interface
(export enter-cr! leave-cr!
leave-cr-and-block!
trans-id?
make-trans-id
cr-trans-id-wait cr-trans-id-wakeup cr-maybe-trans-id-wakeup
trans-id-thread-uid trans-id-cancelled?))
(define-interface rendezvous-interface
(export always-rv never-rv
guard with-nack choose wrap
sync
select))
(define-interface make-rendezvous-interface
(export make-blocked make-enabled make-base))
(define-interface rendezvous-channels-interface
(export make-channel
channel?
send-rv send
receive-rv receive))
(define-interface rendezvous-async-channels-interface
(export make-async-channel
async-channel?
send-async
receive-async-rv
receive-async))
(define-interface rendezvous-placeholders-interface
(export make-placeholder
placeholder?
placeholder-value
placeholder-set!
placeholder-value-rv))
(define-interface rendezvous-jars-interface
(export make-jar
jar?
jar-take
jar-put!
jar-take-rv))
(define-structure trans-ids trans-ids-interface
(open scheme
srfi-9 big-util
threads threads-internal interrupts
locks placeholders)
(files trans-id))
(define-structures ((rendezvous rendezvous-interface)
(make-rendezvous make-rendezvous-interface))
(open scheme
srfi-9 (subset define-record-types (define-record-discloser))
trans-ids
threads threads-internal
big-util
(subset util (unspecific)))
(files rendezvous))
(define-structure rendezvous-channels rendezvous-channels-interface
(open scheme
srfi-9
trans-ids rendezvous make-rendezvous
queues
big-util
(subset util (unspecific)))
(files channel))
(define-structure rendezvous-async-channels rendezvous-async-channels-interface
(open scheme
rendezvous
rendezvous-channels
threads
queues
srfi-9)
(files async-channels))
(define-structure rendezvous-placeholders rendezvous-placeholders-interface
(open scheme
srfi-9 (subset define-record-types (define-record-discloser))
trans-ids rendezvous make-rendezvous
queues
signals
(subset util (unspecific)))
(files placeholder))
(define-structure rendezvous-jars rendezvous-jars-interface
(open scheme
srfi-9 (subset define-record-types (define-record-discloser))
trans-ids rendezvous make-rendezvous
queues
signals
(subset util (unspecific)))
(files jar))