diff options
author | Andy Wingo <wingo@pobox.com> | 2012-02-07 21:41:36 +0100 |
---|---|---|
committer | Andy Wingo <wingo@pobox.com> | 2012-03-12 17:12:37 +0100 |
commit | f20ae551a1666e93df694060bce625a48c2c3767 (patch) | |
tree | e789d956f0e091ac34d14a3adc8bc4f5e80b9cc6 /libguile.h | |
parent | 31a04ee23982f2834fb19c89b5356bc551108e6d (diff) | |
download | guile-f20ae551a1666e93df694060bce625a48c2c3767.tar.gz |
http web server: allow concurrent read operations
* module/web/server/http.scm (<http-server>): Add fields for a reader
thread-pool, and some async queues that it operates on. Also, a flag,
http-threaded?.
(http-open): Add #:threaded? and #:read-workers kwargs. Create a
thread pool for reading if threads are available.
(read-request!): New function, factored out of http-read.
(enqueue-read!, http-read): Instead of reading the client directly,
enqueue a read. In the case where threads are not available, this
will call read-request! directly. read-request! takes care of adding
to the handle-queue. The read polling loop will pop items off the
handle-queue.
(seconds-from-now, async-queue-for-each): New helpers.
(http-write): Shut down the queues and threads, hopefully in a
nonblocking fashion.
Diffstat (limited to 'libguile.h')
0 files changed, 0 insertions, 0 deletions