97 lines
2.3 KiB
Scheme
97 lines
2.3 KiB
Scheme
(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))
|