interfaces.scm 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. ; Part of Scheme 48 1.9. See file COPYING for notices and license.
  2. ; Authors: Mike Sperber
  3. (define-interface trans-ids-interface
  4. (export trans-id?
  5. make-trans-id
  6. maybe-commit-and-trans-id-value
  7. trans-id-set-value!
  8. trans-id-thread-cell
  9. trans-id-cancelled?))
  10. (define-interface rendezvous-interface
  11. (export always-rv never-rv
  12. guard with-nack choose wrap
  13. sync
  14. select))
  15. (define-interface make-rendezvous-interface
  16. (export make-blocked make-enabled make-base))
  17. (define-interface rendezvous-channels-interface
  18. (export make-channel
  19. channel?
  20. send-rv send
  21. receive-rv receive))
  22. (define-interface rendezvous-async-channels-interface
  23. (export make-async-channel
  24. async-channel?
  25. send-async
  26. receive-async-rv
  27. receive-async))
  28. (define-interface rendezvous-placeholders-interface
  29. (export make-placeholder
  30. placeholder?
  31. placeholder-value
  32. placeholder-set!
  33. placeholder-value-rv))
  34. (define-interface rendezvous-jars-interface
  35. (export make-jar
  36. jar?
  37. jar-take
  38. jar-put!
  39. jar-take-rv))
  40. (define-interface rendezvous-time-interface
  41. (export at-real-time-rv
  42. after-time-rv))