Guile Knots is a library providing tools and patterns for programming +with Guile Fibers. Guile Knots +provides higher level building blocks for writing programs using Guile +Fibers, including managing code that can’t run in a thread used by +fibers. Also included is a web server implementation using Fibers, +which while being similar to the web server provided by Fibers, can +provide some benefits in specific circumstances. +
+ + + + + + +The following is the list of modules provided by this library. +
+ + +Undocumented procedure. +
+Undocumented procedure. +
+Undocumented procedure. +
+Undocumented procedure. +
+Undocumented procedure. +
+Undocumented procedure. +
+Undocumented procedure. +
+Let, but run each binding in a fiber in parallel. +
+Run each expression in parallel. If any expression raises an exception, +this will be raised after all exceptions have finished. +
+Undocumented macro. +
+Undocumented macro. +
+Undocumented procedure. +
+Undocumented procedure. +
+Undocumented procedure. +
+Call PROC on LISTS, running up to PARALLELISM-LIMIT fibers in parallel. +
+Map PROC over LISTS in parallel, with a PARALLELISM-LIMIT. If any of +the invocations of PROC raise an exception, this will be raised once all +of the calls to PROC have finished. +
+Call PROC on LISTS, running up to 20 fibers in parallel. +
+Map PROC over LISTS in parallel, running up to 20 fibers in PARALLEL. If +any of the invocations of PROC raise an exception, this will be raised +once all of the calls to PROC have finished. +
+Map PROC over LISTS, calling #:REPORT if specified after each invocation +of PROC finishes. REPORT is passed the results for each element of +LISTS, or #f if no result has been received yet. +
+Undocumented procedure. +
+Undocumented procedure. +
+Undocumented procedure. +
+Undocumented procedure. +
+Undocumented procedure. +
+Undocumented macro. +
+Undocumented macro. +
+Undocumented macro. +
+Undocumented macro. +
+Undocumented macro. +
+Default value: +
+#f ++
Call PROC with a resource from POOL, blocking until a resource becomes +available. Return the resource once PROC has returned. +
+Undocumented procedure. +
+Undocumented procedure. +
+Undocumented procedure. +
+Undocumented procedure. +
+Undocumented procedure. +
+Undocumented procedure. +
+Undocumented procedure. +
+Undocumented procedure. +
+Undocumented procedure. +
+Undocumented procedure. +
+Undocumented procedure. +
+Undocumented procedure. +
+Undocumented procedure. +
+This record type has the following fields: +
+This record type has the following fields: +
+pool
This record type has the following fields: +
+pool
This record type has the following fields: +
+pool
waiters-count
Undocumented macro. +
+Undocumented macro. +
+Undocumented macro. +
+Undocumented macro. +
+Undocumented macro. +
+Send PROC to the thread pool through CHANNEL. Return the result of +PROC. If already in the thread pool, call PROC immediately. +
+Undocumented procedure. +
+Undocumented procedure. +
+Return a channel used to offload work to a dedicated thread. ARGS are +the arguments of the thread pool procedure. +
+Set the name of the calling thread to NAME. NAME is truncated to 15 +bytes. +
+Return the name of the calling thread as a string. +
+Undocumented procedure. +
+Undocumented procedure. +
+Undocumented procedure. +
+Undocumented procedure. +
+Undocumented procedure. +
+Undocumented procedure. +
+Undocumented procedure. +
+Make an operation that will succeed when PORT is readable. +
+Make an operation that will succeed when PORT is writable. +
+Undocumented procedure. +
+Undocumented procedure. +
+This record type has the following fields: +
+thunk
port
This record type has the following fields: +
+thunk
port
This record type has the following fields: +
+thunk
port
Undocumented macro. +
+Undocumented macro. +
+Undocumented macro. +
+Undocumented procedure. +
+Returns a new port which translates non-encoded data into a HTTP chunked +transfer encoded data and writes this to PORT. Data written to this +port is buffered until the port is flushed, at which point it is all +sent as one chunk. The port will otherwise be flushed every BUFFERING +bytes, which defaults to 1200. Take care to close the port when done, +as it will output the remaining data, and encode the final zero chunk. +When the port is closed it will also close PORT, unless KEEP-ALIVE? is +true. +
+Undocumented procedure. +
+Undocumented procedure. +
+Undocumented procedure. +
+Run the knots web server. +
+HANDLER should be a procedure that takes one argument, the HTTP request +and returns two values, the response and response body. +
+For example, here is a simple "Hello, World!" server: +
+(define (handler request) + (let ((body (read-request-body request))) + (values '((content-type . (text/plain))) + "Hello, World!"))) + (run-knots-web-server handler) +
The response and body will be run through ‘sanitize-response’ before +sending back to the client. +
+"Sanitize" the given response and body, making them appropriate for the +given request. +
+As a convenience to web handler authors, RESPONSE may be given as an +alist of headers, in which case it is used to construct a default +response. Ensures that the response version corresponds to the request +version. If BODY is a string, encodes the string to a bytevector, in an +encoding appropriate for RESPONSE. Adds a ‘content-length’ and +‘content-type’ header, as necessary. +
+If BODY is a procedure, it is called with a port as an argument, and the +output collected as a bytevector. In the future we might try to instead +use a compressing, chunk-encoded port, and call this procedure later, in +the write-client procedure. Authors are advised not to rely on the +procedure being called at any particular time. +
+Copyright © 2024, 2025 Christopher Baines <mail@cbaines.net> +
+This library is free software; you can redistribute it and/or modify +it under the terms of the GNU Lesser General Public License as +published by the Free Software Foundation; either version 3 of the +License, or (at your option) any later version. +
+ + + +Jump to: | C + +D + +F + +K + +M + +N + +P + +R + +S + +T + +W + + |
---|
Jump to: | C + +D + +F + +K + +M + +N + +P + +R + +S + +T + +W + + |
---|
Index Entry | Section | |
---|---|---|
R | ||
resource-pool-default-timeout-handler | knots_resource-pool | |