Andy Wingo
0c65f52c6d
more define-syntax-rule usage
...
* module/ice-9/boot-9.scm:
* module/ice-9/control.scm:
* module/ice-9/futures.scm:
* module/ice-9/optargs.scm:
* module/ice-9/poll.scm:
* module/ice-9/receive.scm:
* module/ice-9/threads.scm:
* module/ice-9/vlist.scm:
* module/language/assembly/compile-bytecode.scm:
* module/language/ecmascript/compile-tree-il.scm:
* module/language/tree-il.scm:
* module/oop/goops.scm:
* module/oop/goops/simple.scm:
* module/oop/goops/stklos.scm:
* module/srfi/srfi-1.scm:
* module/srfi/srfi-35.scm:
* module/srfi/srfi-39.scm:
* module/srfi/srfi-45.scm:
* module/srfi/srfi-67/compare.scm:
* module/sxml/match.scm:
* module/system/repl/error-handling.scm:
* module/system/repl/repl.scm:
* module/system/vm/inspect.scm:
* module/texinfo.scm:
* module/web/server.scm: Use define-syntax-rule, where it makes sense.
2011-09-02 11:36:14 +02:00
Andy Wingo
f4e45e91f2
lazily init futures worker pool
...
* module/ice-9/futures.scm (%workers, %create-workers!)
(create-workers!): Define a mechanism to spawn off the future threads
only when the first future is created.
(make-future): Call create-workers! here.
2011-05-26 18:14:32 +02:00
Ludovic Courtès
90b2c69c97
futures: Store pending futures in a queue.
...
* module/ice-9/futures.scm (%futures): Change from a list to a queue.
(register-future!, process-futures, touch): Adjust accordingly.
(unregister-future!): Remove.
2010-12-17 21:55:56 +01:00
Ludovic Courtès
6c17f7bd71
futures: Support multiple-value returns.
...
* module/ice-9/futures.scm (process-future!): Use `call-with-values'
when invoking `(future-thunk future)'.
* test-suite/tests/future.test ("futures")["multiple values"]: New test.
2010-12-16 23:45:24 +01:00
Ludovic Courtès
691a1c3c06
futures: Fix potential deadlock.
...
* module/ice-9/futures.scm (process-futures): Fix potential deadlock,
whereby %FUTURES-MUTEX would be acquired *after* FUTURE's mutex.
2010-12-16 23:45:24 +01:00
Ludovic Courtès
51fc066ae2
Use `current-processor-count' to determine the number of future-workers.
...
* module/ice-9/futures.scm (%worker-count): Use
`current-processor-count'.
* doc/ref/api-scheduling.texi (Futures): Add note about side-effects and
I/O. Mention `current-processor-count'.
2010-12-07 23:13:20 +01:00
Ludovic Courtès
0d4e6ca38f
Add `(ice-9 futures)'.
...
* doc/ref/api-scheduling.texi (Threads): Add short introduction.
Mention the `threads' feature. Add cross-reference to futures.
(Futures): New node.
* module/Makefile.am (ICE_9_SOURCES): Add `ice-9/futures.scm'.
* module/ice-9/futures.scm: New file.
* test-suite/Makefile.am (SCM_TESTS): Add `tests/future.test'.
* test-suite/tests/future.test: New file.
2010-12-03 00:38:29 +01:00