63 |
:export-syntax (make-thread |
:export-syntax (make-thread |
64 |
begin-thread |
begin-thread |
65 |
parallel |
parallel |
66 |
|
letpar |
67 |
with-mutex |
with-mutex |
68 |
monitor)) |
monitor)) |
69 |
|
|
189 |
(wait-condition-variable ,c ,m) |
(wait-condition-variable ,c ,m) |
190 |
(values ,@vars)))))) |
(values ,@vars)))))) |
191 |
|
|
192 |
|
(defmacro letpar (bindings . body) |
193 |
|
`(call-with-values |
194 |
|
(lambda () |
195 |
|
(parallel ,@(map cadr bindings))) |
196 |
|
(lambda ,(map car bindings) |
197 |
|
,@body))) |
198 |
|
|
199 |
(defmacro with-mutex (m . body) |
(defmacro with-mutex (m . body) |
200 |
`(dynamic-wind |
`(dynamic-wind |
201 |
(lambda () (lock-mutex ,m)) |
(lambda () (lock-mutex ,m)) |