(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))