diff options
author | Mikael Djurfeldt <djurfeldt@nada.kth.se> | 2002-12-09 12:58:52 +0000 |
---|---|---|
committer | Mikael Djurfeldt <djurfeldt@nada.kth.se> | 2002-12-09 12:58:52 +0000 |
commit | fc85d095600162567fd0aa563eed9e6eada3e889 (patch) | |
tree | a05bee880b1d43f84c4d3fc9a09d973206d737f0 | |
parent | 9e6e154e84d08289fb60138880164357250431d6 (diff) | |
download | guile-fc85d095600162567fd0aa563eed9e6eada3e889.tar.gz |
* threads.scm (letpar): New macro.
-rw-r--r-- | ice-9/ChangeLog | 7 | ||||
-rw-r--r-- | ice-9/threads.scm | 8 |
2 files changed, 14 insertions, 1 deletions
diff --git a/ice-9/ChangeLog b/ice-9/ChangeLog index bca320e72..456603177 100644 --- a/ice-9/ChangeLog +++ b/ice-9/ChangeLog @@ -1,3 +1,7 @@ +2002-12-09 Mikael Djurfeldt <djurfeldt@nada.kth.se> + + * threads.scm (letpar): New macro. + 2002-12-08 Rob Browning <rlb@defaultvalue.org> * debugger/breakpoints/Makefile.am (subpkgdatadir): VERSION -> @@ -10,7 +14,8 @@ 2002-12-04 Mikael Djurfeldt <mdj@linnaeus> - * threads.scm (par-map, par-for-each, parallel): + * threads.scm (parallel): New macro. + (par-map, par-for-each): New procedures. * documentation.scm (object-documentation): Added support for defmacros. diff --git a/ice-9/threads.scm b/ice-9/threads.scm index c552a8596..f5d178a4e 100644 --- a/ice-9/threads.scm +++ b/ice-9/threads.scm @@ -63,6 +63,7 @@ :export-syntax (make-thread begin-thread parallel + letpar with-mutex monitor)) @@ -188,6 +189,13 @@ (wait-condition-variable ,c ,m) (values ,@vars)))))) +(defmacro letpar (bindings . body) + `(call-with-values + (lambda () + (parallel ,@(map cadr bindings))) + (lambda ,(map car bindings) + ,@body))) + (defmacro with-mutex (m . body) `(dynamic-wind (lambda () (lock-mutex ,m)) |