File: interfaces.scm

package info (click to toggle)
scheme48 1.9.2-1
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 18,232 kB
  • sloc: lisp: 88,907; ansic: 87,519; sh: 3,224; makefile: 771
file content (51 lines) | stat: -rw-r--r-- 1,134 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
; Part of Scheme 48 1.9.  See file COPYING for notices and license.

; Authors: Mike Sperber

(define-interface trans-ids-interface
  (export trans-id?
	  make-trans-id
	  maybe-commit-and-trans-id-value
	  trans-id-set-value!
	  trans-id-thread-cell
	  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-interface rendezvous-time-interface
  (export at-real-time-rv
	  after-time-rv))