2025-06-24 20:01:11 +01:00
<!DOCTYPE html>
2025-06-24 10:55:10 +02:00
< html >
2025-06-24 20:01:11 +01:00
<!-- Created by GNU Texinfo 7.1.1, https://www.gnu.org/software/texinfo/ -->
2025-06-24 10:55:10 +02:00
< head >
2025-06-24 20:01:11 +01:00
< meta http-equiv = "Content-Type" content = "text/html; charset=utf-8" >
< title > Guile Knots< / title >
2025-06-24 10:55:10 +02:00
2025-06-24 20:01:11 +01:00
< meta name = "description" content = "Guile Knots" >
< meta name = "keywords" content = "Guile Knots" >
2025-06-24 10:55:10 +02:00
< meta name = "resource-type" content = "document" >
< meta name = "distribution" content = "global" >
2025-06-24 20:01:11 +01:00
< meta name = "Generator" content = ".texi2any-real" >
< meta name = "viewport" content = "width=device-width,initial-scale=1" >
< link href = "#Top" rel = "start" title = "Top" >
< link href = "#Concept-Index" rel = "index" title = "Concept Index" >
< link href = "#SEC_Contents" rel = "contents" title = "Table of Contents" >
< link href = "#API" rel = "next" title = "API" >
2025-06-24 10:55:10 +02:00
< style type = "text/css" >
<!--
2025-06-24 20:01:11 +01:00
a.copiable-link {visibility: hidden; text-decoration: none; line-height: 0em}
a.summary-letter-printindex {text-decoration: none}
2025-06-24 10:55:10 +02:00
div.example {margin-left: 3.2em}
2025-06-24 20:03:56 +01:00
h1.settitle {text-align:center}
2025-06-24 20:01:11 +01:00
span:hover a.copiable-link {visibility: visible}
strong.def-name {font-family: monospace; font-weight: bold; font-size: larger}
td.printindex-index-entry {vertical-align: top}
td.printindex-index-section {vertical-align: top; padding-left: 1em}
th.entries-header-printindex {text-align:left}
th.sections-header-printindex {text-align:left; padding-left: 1em}
ul.mark-bullet {list-style-type: disc}
ul.toc-numbered-mark {list-style: none}
2025-06-24 10:55:10 +02:00
-->
< / style >
< link rel = "stylesheet" type = "text/css" href = "https://luis-felipe.gitlab.io/texinfo-css/static/css/texinfo-7.css" >
< / head >
2025-06-24 20:01:11 +01:00
< body lang = "en" >
2025-06-24 20:03:56 +01:00
< h1 class = "settitle" > Guile Knots< / h1 >
< hr >
2025-06-24 20:01:11 +01:00
< div class = "top-level-extent" id = "Top" >
< div class = "nav-panel" >
< p >
Next: < a href = "#API" accesskey = "n" rel = "next" > API< / a > [< a href = "#SEC_Contents" title = "Table of contents" rel = "contents" > Contents< / a > ][< a href = "#Concept-Index" title = "Index" rel = "index" > Index< / a > ]< / p >
< / div >
< h1 class = "top" id = "Overview" > < span > Overview< a class = "copiable-link" href = "#Overview" > ¶ < / a > < / span > < / h1 >
< p > Guile Knots is a library providing tools and patterns for programming
with < a class = "url" href = "https://github.com/wingo/fibers" > Guile Fibers< / a > . 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.
< / p >
< div class = "element-contents" id = "SEC_Contents" >
< h2 class = "contents-heading" > Table of Contents< / h2 >
< div class = "contents" >
< ul class = "toc-numbered-mark" >
< li > < a id = "toc-API-1" href = "#API" > 1 API< / a >
< ul class = "toc-numbered-mark" >
< li > < a id = "toc-_0028knots-non_002dblocking_0029" href = "#knots_005fnon_002dblocking" > 1.1 (knots non-blocking)< / a >
< ul class = "toc-numbered-mark" >
< li > < a id = "toc-Procedures" href = "#Procedures" > 1.1.1 Procedures< / a > < / li >
< / ul > < / li >
< li > < a id = "toc-_0028knots-parallelism_0029" href = "#knots_005fparallelism" > 1.2 (knots parallelism)< / a >
< ul class = "toc-numbered-mark" >
< li > < a id = "toc-Macros" href = "#Macros" > 1.2.1 Macros< / a > < / li >
< li > < a id = "toc-Procedures-1" href = "#Procedures-1" > 1.2.2 Procedures< / a > < / li >
< / ul > < / li >
< li > < a id = "toc-_0028knots-promise_0029" href = "#knots_005fpromise" > 1.3 (knots promise)< / a >
< ul class = "toc-numbered-mark" >
< li > < a id = "toc-Macros-1" href = "#Macros-1" > 1.3.1 Macros< / a > < / li >
< li > < a id = "toc-Procedures-2" href = "#Procedures-2" > 1.3.2 Procedures< / a > < / li >
< / ul > < / li >
< li > < a id = "toc-_0028knots-queue_0029" href = "#knots_005fqueue" > 1.4 (knots queue)< / a >
< ul class = "toc-numbered-mark" >
< li > < a id = "toc-Procedures-3" href = "#Procedures-3" > 1.4.1 Procedures< / a > < / li >
< / ul > < / li >
< li > < a id = "toc-_0028knots-resource_002dpool_0029" href = "#knots_005fresource_002dpool" > 1.5 (knots resource-pool)< / a >
< ul class = "toc-numbered-mark" >
< li > < a id = "toc-Macros-2" href = "#Macros-2" > 1.5.1 Macros< / a > < / li >
< li > < a id = "toc-Parameters" href = "#Parameters" > 1.5.2 Parameters< / a > < / li >
< li > < a id = "toc-Procedures-4" href = "#Procedures-4" > 1.5.3 Procedures< / a > < / li >
< li > < a id = "toc-Record-Types" href = "#Record-Types" > 1.5.4 Record Types< / a > < / li >
< / ul > < / li >
< li > < a id = "toc-_0028knots-thread_002dpool_0029" href = "#knots_005fthread_002dpool" > 1.6 (knots thread-pool)< / a >
< ul class = "toc-numbered-mark" >
< li > < a id = "toc-Macros-3" href = "#Macros-3" > 1.6.1 Macros< / a > < / li >
< li > < a id = "toc-Procedures-5" href = "#Procedures-5" > 1.6.2 Procedures< / a > < / li >
< li > < a id = "toc-Record-Types-1" href = "#Record-Types-1" > 1.6.3 Record Types< / a > < / li >
< / ul > < / li >
< li > < a id = "toc-_0028knots-timeout_0029" href = "#knots_005ftimeout" > 1.7 (knots timeout)< / a >
< ul class = "toc-numbered-mark" >
< li > < a id = "toc-Procedures-6" href = "#Procedures-6" > 1.7.1 Procedures< / a > < / li >
< li > < a id = "toc-Record-Types-2" href = "#Record-Types-2" > 1.7.2 Record Types< / a > < / li >
< / ul > < / li >
< li > < a id = "toc-_0028knots-web_002dserver_0029" href = "#knots_005fweb_002dserver" > 1.8 (knots web-server)< / a >
< ul class = "toc-numbered-mark" >
< li > < a id = "toc-Macros-4" href = "#Macros-4" > 1.8.1 Macros< / a > < / li >
< li > < a id = "toc-Procedures-7" href = "#Procedures-7" > 1.8.2 Procedures< / a > < / li >
< li > < a id = "toc-Record-Types-3" href = "#Record-Types-3" > 1.8.3 Record Types< / a > < / li >
< / ul > < / li >
< / ul > < / li >
< li > < a id = "toc-Version-History-1" href = "#Version-History" > Appendix A Version History< / a > < / li >
< li > < a id = "toc-Copying-Information-1" href = "#Copying-Information" > Appendix B Copying Information< / a > < / li >
< li > < a id = "toc-Concept-Index-1" href = "#Concept-Index" rel = "index" > Concept Index< / a > < / li >
< li > < a id = "toc-Data-Type-Index-1" href = "#Data-Type-Index" rel = "index" > Data Type Index< / a > < / li >
< li > < a id = "toc-Procedure-Index-1" href = "#Procedure-Index" rel = "index" > Procedure Index< / a > < / li >
< li > < a id = "toc-Variable-Index-1" href = "#Variable-Index" rel = "index" > Variable Index< / a > < / li >
< / ul >
< / div >
< / div >
< hr >
< div class = "chapter-level-extent" id = "API" >
< div class = "nav-panel" >
< p >
Next: < a href = "#Version-History" accesskey = "n" rel = "next" > Version History< / a > , Previous: < a href = "#Top" accesskey = "p" rel = "prev" > Overview< / a > , Up: < a href = "#Top" accesskey = "u" rel = "up" > Overview< / a > [< a href = "#SEC_Contents" title = "Table of contents" rel = "contents" > Contents< / a > ][< a href = "#Concept-Index" title = "Index" rel = "index" > Index< / a > ]< / p >
< / div >
< h2 class = "chapter" id = "API-1" > < span > 1 API< a class = "copiable-link" href = "#API-1" > ¶ < / a > < / span > < / h2 >
2025-06-24 10:55:10 +02:00
< p > The following is the list of modules provided by this library.
< / p >
2025-06-24 20:01:11 +01:00
< ul class = "mini-toc" >
< li > < a href = "#knots_005fnon_002dblocking" accesskey = "1" > (knots non-blocking)< / a > < / li >
< li > < a href = "#knots_005fparallelism" accesskey = "2" > (knots parallelism)< / a > < / li >
< li > < a href = "#knots_005fpromise" accesskey = "3" > (knots promise)< / a > < / li >
< li > < a href = "#knots_005fqueue" accesskey = "4" > (knots queue)< / a > < / li >
< li > < a href = "#knots_005fresource_002dpool" accesskey = "5" > (knots resource-pool)< / a > < / li >
< li > < a href = "#knots_005fthread_002dpool" accesskey = "6" > (knots thread-pool)< / a > < / li >
< li > < a href = "#knots_005ftimeout" accesskey = "7" > (knots timeout)< / a > < / li >
< li > < a href = "#knots_005fweb_002dserver" accesskey = "8" > (knots web-server)< / a > < / li >
< / ul >
2025-06-24 10:55:10 +02:00
< hr >
2025-06-24 20:01:11 +01:00
< div class = "section-level-extent" id = "knots_005fnon_002dblocking" >
< div class = "nav-panel" >
< p >
Next: < a href = "#knots_005fparallelism" accesskey = "n" rel = "next" > (knots parallelism)< / a > , Up: < a href = "#API" accesskey = "u" rel = "up" > API< / a > [< a href = "#SEC_Contents" title = "Table of contents" rel = "contents" > Contents< / a > ][< a href = "#Concept-Index" title = "Index" rel = "index" > Index< / a > ]< / p >
< / div >
< h3 class = "section" id = "g_t_0028knots-non_002dblocking_0029" > < span > 1.1 (knots non-blocking)< a class = "copiable-link" href = "#g_t_0028knots-non_002dblocking_0029" > ¶ < / a > < / span > < / h3 >
2025-06-24 10:55:10 +02:00
2025-06-24 20:01:11 +01:00
< ul class = "mini-toc" >
< li > < a href = "#Procedures" accesskey = "1" > Procedures< / a > < / li >
< / ul >
< div class = "subsection-level-extent" id = "Procedures" >
< h4 class = "subsection" > < span > 1.1.1 Procedures< a class = "copiable-link" href = "#Procedures" > ¶ < / a > < / span > < / h4 >
< dl class = "first-deffn" >
< dt class = "deffn" id = "index-non_002dblocking_002dopen_002dsocket_002dfor_002duri" > < span class = "category-def" > Procedure: < / span > < span > < strong class = "def-name" > non-blocking-open-socket-for-uri< / strong > < var class = "def-var-arguments" > _ KEY: #:verify-certificate?< / var > < a class = "copiable-link" href = "#index-non_002dblocking_002dopen_002dsocket_002dfor_002duri" > ¶ < / a > < / span > < / dt >
2025-06-24 10:55:10 +02:00
< dd > < p > Undocumented procedure.
< / p >
< / dd > < / dl >
2025-06-24 20:01:11 +01:00
< dl class = "first-deffn" >
< dt class = "deffn" id = "index-non_002dblocking_002dport" > < span class = "category-def" > Procedure: < / span > < span > < strong class = "def-name" > non-blocking-port< / strong > < var class = "def-var-arguments" > a< / var > < a class = "copiable-link" href = "#index-non_002dblocking_002dport" > ¶ < / a > < / span > < / dt >
2025-06-24 10:55:10 +02:00
< dd > < p > Make PORT non-blocking and return it.
< / p >
< / dd > < / dl >
< hr >
2025-06-24 20:01:11 +01:00
< / div >
< / div >
< div class = "section-level-extent" id = "knots_005fparallelism" >
< div class = "nav-panel" >
< p >
Next: < a href = "#knots_005fpromise" accesskey = "n" rel = "next" > (knots promise)< / a > , Previous: < a href = "#knots_005fnon_002dblocking" accesskey = "p" rel = "prev" > (knots non-blocking)< / a > , Up: < a href = "#API" accesskey = "u" rel = "up" > API< / a > [< a href = "#SEC_Contents" title = "Table of contents" rel = "contents" > Contents< / a > ][< a href = "#Concept-Index" title = "Index" rel = "index" > Index< / a > ]< / p >
< / div >
< h3 class = "section" id = "g_t_0028knots-parallelism_0029" > < span > 1.2 (knots parallelism)< a class = "copiable-link" href = "#g_t_0028knots-parallelism_0029" > ¶ < / a > < / span > < / h3 >
2025-06-24 10:55:10 +02:00
2025-06-24 20:01:11 +01:00
< ul class = "mini-toc" >
< li > < a href = "#Macros" accesskey = "1" > Macros< / a > < / li >
< li > < a href = "#Procedures-1" accesskey = "2" > Procedures< / a > < / li >
< / ul >
< div class = "subsection-level-extent" id = "Macros" >
< h4 class = "subsection" > < span > 1.2.1 Macros< a class = "copiable-link" href = "#Macros" > ¶ < / a > < / span > < / h4 >
< dl class = "first-deffn first-defmac-alias-first-deffn" >
< dt class = "deffn defmac-alias-deffn" id = "index-fibers_002dlet" > < span class = "category-def" > Macro: < / span > < span > < strong class = "def-name" > fibers-let< / strong > < var class = "def-var-arguments" > a< / var > < a class = "copiable-link" href = "#index-fibers_002dlet" > ¶ < / a > < / span > < / dt >
2025-06-24 10:55:10 +02:00
< dd > < p > Undocumented macro.
< / p >
< / dd > < / dl >
2025-06-24 20:01:11 +01:00
< dl class = "first-deffn first-defmac-alias-first-deffn" >
< dt class = "deffn defmac-alias-deffn" id = "index-fibers_002dparallel" > < span class = "category-def" > Macro: < / span > < span > < strong class = "def-name" > fibers-parallel< / strong > < var class = "def-var-arguments" > a< / var > < a class = "copiable-link" href = "#index-fibers_002dparallel" > ¶ < / a > < / span > < / dt >
2025-06-24 10:55:10 +02:00
< dd > < p > Undocumented macro.
< / p >
< / dd > < / dl >
2025-06-25 17:52:47 +01:00
< dl class = "first-deffn first-defmac-alias-first-deffn" >
< dt class = "deffn defmac-alias-deffn" id = "index-parallelism_002dlimiter_003f" > < span class = "category-def" > Macro: < / span > < span > < strong class = "def-name" > parallelism-limiter?< / strong > < var class = "def-var-arguments" > a< / var > < a class = "copiable-link" href = "#index-parallelism_002dlimiter_003f" > ¶ < / a > < / span > < / dt >
< dd > < p > Undocumented macro.
< / p >
< / dd > < / dl >
< dl class = "first-deffn first-defmac-alias-first-deffn" >
< dt class = "deffn defmac-alias-deffn" id = "index-with_002dparallelism_002dlimiter" > < span class = "category-def" > Macro: < / span > < span > < strong class = "def-name" > with-parallelism-limiter< / strong > < var class = "def-var-arguments" > a< / var > < a class = "copiable-link" href = "#index-with_002dparallelism_002dlimiter" > ¶ < / a > < / span > < / dt >
< dd > < p > Undocumented macro.
< / p >
< / dd > < / dl >
2025-06-24 10:55:10 +02:00
2025-06-24 20:01:11 +01:00
< / div >
< div class = "subsection-level-extent" id = "Procedures-1" >
< h4 class = "subsection" > < span > 1.2.2 Procedures< a class = "copiable-link" href = "#Procedures-1" > ¶ < / a > < / span > < / h4 >
2025-06-25 17:52:47 +01:00
< dl class = "first-deffn" >
< dt class = "deffn" id = "index-call_002dwith_002dparallelism_002dlimiter" > < span class = "category-def" > Procedure: < / span > < span > < strong class = "def-name" > call-with-parallelism-limiter< / strong > < var class = "def-var-arguments" > a b< / var > < a class = "copiable-link" href = "#index-call_002dwith_002dparallelism_002dlimiter" > ¶ < / a > < / span > < / dt >
< dd > < p > Undocumented procedure.
< / p >
< / dd > < / dl >
< dl class = "first-deffn" >
< dt class = "deffn" id = "index-destroy_002dparallelism_002dlimiter" > < span class = "category-def" > Procedure: < / span > < span > < strong class = "def-name" > destroy-parallelism-limiter< / strong > < var class = "def-var-arguments" > a< / var > < a class = "copiable-link" href = "#index-destroy_002dparallelism_002dlimiter" > ¶ < / a > < / span > < / dt >
< dd > < p > Undocumented procedure.
< / p >
< / dd > < / dl >
2025-06-24 20:01:11 +01:00
< dl class = "first-deffn" >
< dt class = "deffn" id = "index-fiberize" > < span class = "category-def" > Procedure: < / span > < span > < strong class = "def-name" > fiberize< / strong > < var class = "def-var-arguments" > _ KEY: #:parallelism #:input-channel #:process-channel< / var > < a class = "copiable-link" href = "#index-fiberize" > ¶ < / a > < / span > < / dt >
2025-06-24 10:55:10 +02:00
< dd > < p > Undocumented procedure.
< / p >
< / dd > < / dl >
2025-06-24 20:01:11 +01:00
< dl class = "first-deffn" >
< dt class = "deffn" id = "index-fibers_002dbatch_002dfor_002deach" > < span class = "category-def" > Procedure: < / span > < span > < strong class = "def-name" > fibers-batch-for-each< / strong > < var class = "def-var-arguments" > a b . rest< / var > < a class = "copiable-link" href = "#index-fibers_002dbatch_002dfor_002deach" > ¶ < / a > < / span > < / dt >
2025-06-24 10:55:10 +02:00
< dd > < p > Undocumented procedure.
< / p >
< / dd > < / dl >
2025-06-24 20:01:11 +01:00
< dl class = "first-deffn" >
< dt class = "deffn" id = "index-fibers_002dbatch_002dmap" > < span class = "category-def" > Procedure: < / span > < span > < strong class = "def-name" > fibers-batch-map< / strong > < var class = "def-var-arguments" > a b . rest< / var > < a class = "copiable-link" href = "#index-fibers_002dbatch_002dmap" > ¶ < / a > < / span > < / dt >
2025-06-24 10:55:10 +02:00
< dd > < p > Undocumented procedure.
< / p >
< / dd > < / dl >
2025-06-24 20:01:11 +01:00
< dl class = "first-deffn" >
< dt class = "deffn" id = "index-fibers_002dfor_002deach" > < span class = "category-def" > Procedure: < / span > < span > < strong class = "def-name" > fibers-for-each< / strong > < var class = "def-var-arguments" > a . rest< / var > < a class = "copiable-link" href = "#index-fibers_002dfor_002deach" > ¶ < / a > < / span > < / dt >
2025-06-24 10:55:10 +02:00
< dd > < p > Undocumented procedure.
< / p >
< / dd > < / dl >
2025-06-24 20:01:11 +01:00
< dl class = "first-deffn" >
< dt class = "deffn" id = "index-fibers_002dmap" > < span class = "category-def" > Procedure: < / span > < span > < strong class = "def-name" > fibers-map< / strong > < var class = "def-var-arguments" > a . rest< / var > < a class = "copiable-link" href = "#index-fibers_002dmap" > ¶ < / a > < / span > < / dt >
2025-06-24 10:55:10 +02:00
< dd > < p > Undocumented procedure.
< / p >
< / dd > < / dl >
2025-06-24 20:01:11 +01:00
< dl class = "first-deffn" >
< dt class = "deffn" id = "index-fibers_002dmap_002dwith_002dprogress" > < span class = "category-def" > Procedure: < / span > < span > < strong class = "def-name" > fibers-map-with-progress< / strong > < var class = "def-var-arguments" > _ _ KEY: #:report< / var > < a class = "copiable-link" href = "#index-fibers_002dmap_002dwith_002dprogress" > ¶ < / a > < / span > < / dt >
2025-06-24 10:55:10 +02:00
< dd > < p > Undocumented procedure.
< / p >
< / dd > < / dl >
2025-06-25 17:52:47 +01:00
< dl class = "first-deffn" >
< dt class = "deffn" id = "index-make_002dparallelism_002dlimiter" > < span class = "category-def" > Procedure: < / span > < span > < strong class = "def-name" > make-parallelism-limiter< / strong > < var class = "def-var-arguments" > _ KEY: #:name< / var > < a class = "copiable-link" href = "#index-make_002dparallelism_002dlimiter" > ¶ < / a > < / span > < / dt >
< dd > < p > Undocumented procedure.
< / p >
< / dd > < / dl >
2025-06-24 10:55:10 +02:00
< hr >
2025-06-24 20:01:11 +01:00
< / div >
< / div >
< div class = "section-level-extent" id = "knots_005fpromise" >
< div class = "nav-panel" >
< p >
Next: < a href = "#knots_005fqueue" accesskey = "n" rel = "next" > (knots queue)< / a > , Previous: < a href = "#knots_005fparallelism" accesskey = "p" rel = "prev" > (knots parallelism)< / a > , Up: < a href = "#API" accesskey = "u" rel = "up" > API< / a > [< a href = "#SEC_Contents" title = "Table of contents" rel = "contents" > Contents< / a > ][< a href = "#Concept-Index" title = "Index" rel = "index" > Index< / a > ]< / p >
< / div >
< h3 class = "section" id = "g_t_0028knots-promise_0029" > < span > 1.3 (knots promise)< a class = "copiable-link" href = "#g_t_0028knots-promise_0029" > ¶ < / a > < / span > < / h3 >
2025-06-24 10:55:10 +02:00
2025-06-24 20:01:11 +01:00
< ul class = "mini-toc" >
< li > < a href = "#Macros-1" accesskey = "1" > Macros< / a > < / li >
< li > < a href = "#Procedures-2" accesskey = "2" > Procedures< / a > < / li >
< / ul >
< div class = "subsection-level-extent" id = "Macros-1" >
< h4 class = "subsection" > < span > 1.3.1 Macros< a class = "copiable-link" href = "#Macros-1" > ¶ < / a > < / span > < / h4 >
< dl class = "first-deffn first-defmac-alias-first-deffn" >
< dt class = "deffn defmac-alias-deffn" id = "index-fibers_002dpromise_003f" > < span class = "category-def" > Macro: < / span > < span > < strong class = "def-name" > fibers-promise?< / strong > < var class = "def-var-arguments" > a< / var > < a class = "copiable-link" href = "#index-fibers_002dpromise_003f" > ¶ < / a > < / span > < / dt >
2025-06-24 10:55:10 +02:00
< dd > < p > Undocumented macro.
< / p >
< / dd > < / dl >
2025-06-24 20:01:11 +01:00
< / div >
< div class = "subsection-level-extent" id = "Procedures-2" >
< h4 class = "subsection" > < span > 1.3.2 Procedures< a class = "copiable-link" href = "#Procedures-2" > ¶ < / a > < / span > < / h4 >
< dl class = "first-deffn" >
< dt class = "deffn" id = "index-fibers_002ddelay" > < span class = "category-def" > Procedure: < / span > < span > < strong class = "def-name" > fibers-delay< / strong > < var class = "def-var-arguments" > a< / var > < a class = "copiable-link" href = "#index-fibers_002ddelay" > ¶ < / a > < / span > < / dt >
2025-06-24 10:55:10 +02:00
< dd > < p > Undocumented procedure.
< / p >
< / dd > < / dl >
2025-06-24 20:01:11 +01:00
< dl class = "first-deffn" >
< dt class = "deffn" id = "index-fibers_002dforce" > < span class = "category-def" > Procedure: < / span > < span > < strong class = "def-name" > fibers-force< / strong > < var class = "def-var-arguments" > a< / var > < a class = "copiable-link" href = "#index-fibers_002dforce" > ¶ < / a > < / span > < / dt >
2025-06-24 10:55:10 +02:00
< dd > < p > Undocumented procedure.
< / p >
< / dd > < / dl >
2025-06-24 20:01:11 +01:00
< dl class = "first-deffn" >
< dt class = "deffn" id = "index-fibers_002dpromise_002dreset" > < span class = "category-def" > Procedure: < / span > < span > < strong class = "def-name" > fibers-promise-reset< / strong > < var class = "def-var-arguments" > a< / var > < a class = "copiable-link" href = "#index-fibers_002dpromise_002dreset" > ¶ < / a > < / span > < / dt >
2025-06-24 10:55:10 +02:00
< dd > < p > Undocumented procedure.
< / p >
< / dd > < / dl >
2025-06-24 20:01:11 +01:00
< dl class = "first-deffn" >
< dt class = "deffn" id = "index-fibers_002dpromise_002dresult_002davailable_003f" > < span class = "category-def" > Procedure: < / span > < span > < strong class = "def-name" > fibers-promise-result-available?< / strong > < var class = "def-var-arguments" > a< / var > < a class = "copiable-link" href = "#index-fibers_002dpromise_002dresult_002davailable_003f" > ¶ < / a > < / span > < / dt >
2025-06-24 10:55:10 +02:00
< dd > < p > Undocumented procedure.
< / p >
< / dd > < / dl >
< hr >
2025-06-24 20:01:11 +01:00
< / div >
< / div >
< div class = "section-level-extent" id = "knots_005fqueue" >
< div class = "nav-panel" >
< p >
Next: < a href = "#knots_005fresource_002dpool" accesskey = "n" rel = "next" > (knots resource-pool)< / a > , Previous: < a href = "#knots_005fpromise" accesskey = "p" rel = "prev" > (knots promise)< / a > , Up: < a href = "#API" accesskey = "u" rel = "up" > API< / a > [< a href = "#SEC_Contents" title = "Table of contents" rel = "contents" > Contents< / a > ][< a href = "#Concept-Index" title = "Index" rel = "index" > Index< / a > ]< / p >
< / div >
< h3 class = "section" id = "g_t_0028knots-queue_0029" > < span > 1.4 (knots queue)< a class = "copiable-link" href = "#g_t_0028knots-queue_0029" > ¶ < / a > < / span > < / h3 >
2025-06-24 10:55:10 +02:00
2025-06-24 20:01:11 +01:00
< ul class = "mini-toc" >
< li > < a href = "#Procedures-3" accesskey = "1" > Procedures< / a > < / li >
< / ul >
< div class = "subsection-level-extent" id = "Procedures-3" >
< h4 class = "subsection" > < span > 1.4.1 Procedures< a class = "copiable-link" href = "#Procedures-3" > ¶ < / a > < / span > < / h4 >
< dl class = "first-deffn" >
< dt class = "deffn" id = "index-spawn_002dqueueing_002dfiber" > < span class = "category-def" > Procedure: < / span > < span > < strong class = "def-name" > spawn-queueing-fiber< / strong > < var class = "def-var-arguments" > a< / var > < a class = "copiable-link" href = "#index-spawn_002dqueueing_002dfiber" > ¶ < / a > < / span > < / dt >
2025-06-24 10:55:10 +02:00
< dd > < p > Undocumented procedure.
< / p >
< / dd > < / dl >
< hr >
2025-06-24 20:01:11 +01:00
< / div >
< / div >
< div class = "section-level-extent" id = "knots_005fresource_002dpool" >
< div class = "nav-panel" >
< p >
Next: < a href = "#knots_005fthread_002dpool" accesskey = "n" rel = "next" > (knots thread-pool)< / a > , Previous: < a href = "#knots_005fqueue" accesskey = "p" rel = "prev" > (knots queue)< / a > , Up: < a href = "#API" accesskey = "u" rel = "up" > API< / a > [< a href = "#SEC_Contents" title = "Table of contents" rel = "contents" > Contents< / a > ][< a href = "#Concept-Index" title = "Index" rel = "index" > Index< / a > ]< / p >
< / div >
< h3 class = "section" id = "g_t_0028knots-resource_002dpool_0029" > < span > 1.5 (knots resource-pool)< a class = "copiable-link" href = "#g_t_0028knots-resource_002dpool_0029" > ¶ < / a > < / span > < / h3 >
2025-06-24 10:55:10 +02:00
2025-06-24 20:01:11 +01:00
< ul class = "mini-toc" >
< li > < a href = "#Macros-2" accesskey = "1" > Macros< / a > < / li >
< li > < a href = "#Parameters" accesskey = "2" > Parameters< / a > < / li >
< li > < a href = "#Procedures-4" accesskey = "3" > Procedures< / a > < / li >
< li > < a href = "#Record-Types" accesskey = "4" > Record Types< / a > < / li >
< / ul >
< div class = "subsection-level-extent" id = "Macros-2" >
< h4 class = "subsection" > < span > 1.5.1 Macros< a class = "copiable-link" href = "#Macros-2" > ¶ < / a > < / span > < / h4 >
< dl class = "first-deffn first-defmac-alias-first-deffn" >
< dt class = "deffn defmac-alias-deffn" id = "index-resource_002dpool_002dchannel" > < span class = "category-def" > Macro: < / span > < span > < strong class = "def-name" > resource-pool-channel< / strong > < var class = "def-var-arguments" > a< / var > < a class = "copiable-link" href = "#index-resource_002dpool_002dchannel" > ¶ < / a > < / span > < / dt >
2025-06-24 10:55:10 +02:00
< dd > < p > Undocumented macro.
< / p >
< / dd > < / dl >
2025-06-24 20:01:11 +01:00
< dl class = "first-deffn first-defmac-alias-first-deffn" >
< dt class = "deffn defmac-alias-deffn" id = "index-resource_002dpool_002dconfiguration" > < span class = "category-def" > Macro: < / span > < span > < strong class = "def-name" > resource-pool-configuration< / strong > < var class = "def-var-arguments" > a< / var > < a class = "copiable-link" href = "#index-resource_002dpool_002dconfiguration" > ¶ < / a > < / span > < / dt >
2025-06-24 10:55:10 +02:00
< dd > < p > Undocumented macro.
< / p >
< / dd > < / dl >
2025-06-24 20:01:11 +01:00
< dl class = "first-deffn first-defmac-alias-first-deffn" >
< dt class = "deffn defmac-alias-deffn" id = "index-resource_002dpool_002dname" > < span class = "category-def" > Macro: < / span > < span > < strong class = "def-name" > resource-pool-name< / strong > < var class = "def-var-arguments" > a< / var > < a class = "copiable-link" href = "#index-resource_002dpool_002dname" > ¶ < / a > < / span > < / dt >
2025-06-24 10:55:10 +02:00
< dd > < p > Undocumented macro.
< / p >
< / dd > < / dl >
2025-06-24 20:01:11 +01:00
< dl class = "first-deffn first-defmac-alias-first-deffn" >
< dt class = "deffn defmac-alias-deffn" id = "index-resource_002dpool_003f" > < span class = "category-def" > Macro: < / span > < span > < strong class = "def-name" > resource-pool?< / strong > < var class = "def-var-arguments" > a< / var > < a class = "copiable-link" href = "#index-resource_002dpool_003f" > ¶ < / a > < / span > < / dt >
2025-06-24 10:55:10 +02:00
< dd > < p > Undocumented macro.
< / p >
< / dd > < / dl >
2025-06-24 20:01:11 +01:00
< dl class = "first-deffn first-defmac-alias-first-deffn" >
< dt class = "deffn defmac-alias-deffn" id = "index-with_002dresource_002dfrom_002dpool" > < span class = "category-def" > Macro: < / span > < span > < strong class = "def-name" > with-resource-from-pool< / strong > < var class = "def-var-arguments" > a< / var > < a class = "copiable-link" href = "#index-with_002dresource_002dfrom_002dpool" > ¶ < / a > < / span > < / dt >
2025-06-24 10:55:10 +02:00
< dd > < p > Undocumented macro.
< / p >
< / dd > < / dl >
2025-06-24 20:01:11 +01:00
< / div >
< div class = "subsection-level-extent" id = "Parameters" >
< h4 class = "subsection" > < span > 1.5.2 Parameters< a class = "copiable-link" href = "#Parameters" > ¶ < / a > < / span > < / h4 >
< dl class = "first-defvr" >
< dt class = "defvr" id = "index-resource_002dpool_002ddefault_002dtimeout_002dhandler" > < span class = "category-def" > Parameter: < / span > < span > < strong class = "def-name" > resource-pool-default-timeout-handler< / strong > < a class = "copiable-link" href = "#index-resource_002dpool_002ddefault_002dtimeout_002dhandler" > ¶ < / a > < / span > < / dt >
2025-06-24 10:55:10 +02:00
< dd > < p > Default value:
< / p >
< pre class = "verbatim" > #f
< / pre >
< / dd > < / dl >
2025-06-24 20:01:11 +01:00
< / div >
< div class = "subsection-level-extent" id = "Procedures-4" >
< h4 class = "subsection" > < span > 1.5.3 Procedures< a class = "copiable-link" href = "#Procedures-4" > ¶ < / a > < / span > < / h4 >
< dl class = "first-deffn" >
< dt class = "deffn" id = "index-call_002dwith_002dresource_002dfrom_002dpool" > < span class = "category-def" > Procedure: < / span > < span > < strong class = "def-name" > call-with-resource-from-pool< / strong > < var class = "def-var-arguments" > _ _ KEY: #:timeout #:timeout-handler #:max-waiters #:channel #:destroy-resource-on-exception?< / var > < a class = "copiable-link" href = "#index-call_002dwith_002dresource_002dfrom_002dpool" > ¶ < / a > < / span > < / dt >
2025-06-24 10:55:10 +02:00
< dd > < p > Call PROC with a resource from POOL, blocking until a resource becomes
available. Return the resource once PROC has returned.
< / p >
< / dd > < / dl >
2025-06-24 20:01:11 +01:00
< dl class = "first-deffn" >
< dt class = "deffn" id = "index-destroy_002dresource_002dpool" > < span class = "category-def" > Procedure: < / span > < span > < strong class = "def-name" > destroy-resource-pool< / strong > < var class = "def-var-arguments" > a< / var > < a class = "copiable-link" href = "#index-destroy_002dresource_002dpool" > ¶ < / a > < / span > < / dt >
2025-06-24 10:55:10 +02:00
< dd > < p > Undocumented procedure.
< / p >
< / dd > < / dl >
2025-06-25 17:52:47 +01:00
< dl class = "first-deffn" >
< dt class = "deffn" id = "index-make_002dfixed_002dsize_002dresource_002dpool" > < span class = "category-def" > Procedure: < / span > < span > < strong class = "def-name" > make-fixed-size-resource-pool< / strong > < var class = "def-var-arguments" > _ KEY: #:delay-logger #:duration-logger #:destructor #:scheduler #:name #:default-checkout-timeout #:default-max-waiters< / var > < a class = "copiable-link" href = "#index-make_002dfixed_002dsize_002dresource_002dpool" > ¶ < / a > < / span > < / dt >
< dd > < p > Undocumented procedure.
< / p >
< / dd > < / dl >
2025-06-24 20:01:11 +01:00
< dl class = "first-deffn" >
< dt class = "deffn" id = "index-make_002dresource_002dpool" > < span class = "category-def" > Procedure: < / span > < span > < strong class = "def-name" > make-resource-pool< / strong > < var class = "def-var-arguments" > _ _ KEY: #:min-size #:idle-seconds #:delay-logger #:duration-logger #:destructor #:lifetime #:scheduler #:name #:add-resources-parallelism #:default-checkout-timeout #:default-max-waiters< / var > < a class = "copiable-link" href = "#index-make_002dresource_002dpool" > ¶ < / a > < / span > < / dt >
2025-06-24 10:55:10 +02:00
< dd > < p > Undocumented procedure.
< / p >
< / dd > < / dl >
2025-06-24 20:01:11 +01:00
< dl class = "first-deffn" >
< dt class = "deffn" id = "index-make_002dresource_002dpool_002ddestroy_002dresource_002dexception" > < span class = "category-def" > Procedure: < / span > < span > < strong class = "def-name" > make-resource-pool-destroy-resource-exception< / strong > < a class = "copiable-link" href = "#index-make_002dresource_002dpool_002ddestroy_002dresource_002dexception" > ¶ < / a > < / span > < / dt >
2025-06-24 10:55:10 +02:00
< dd > < p > Undocumented procedure.
< / p >
< / dd > < / dl >
2025-06-24 20:01:11 +01:00
< dl class = "first-deffn" >
< dt class = "deffn" id = "index-resource_002dpool_002ddestroy_002dresource_002dexception_003f" > < span class = "category-def" > Procedure: < / span > < span > < strong class = "def-name" > resource-pool-destroy-resource-exception?< / strong > < var class = "def-var-arguments" > obj< / var > < a class = "copiable-link" href = "#index-resource_002dpool_002ddestroy_002dresource_002dexception_003f" > ¶ < / a > < / span > < / dt >
2025-06-24 10:55:10 +02:00
< dd > < p > Undocumented procedure.
< / p >
< / dd > < / dl >
2025-06-24 20:01:11 +01:00
< dl class = "first-deffn" >
< dt class = "deffn" id = "index-resource_002dpool_002ddestroyed_002derror_002dpool" > < span class = "category-def" > Procedure: < / span > < span > < strong class = "def-name" > resource-pool-destroyed-error-pool< / strong > < var class = "def-var-arguments" > obj< / var > < a class = "copiable-link" href = "#index-resource_002dpool_002ddestroyed_002derror_002dpool" > ¶ < / a > < / span > < / dt >
2025-06-24 10:55:10 +02:00
< dd > < p > Undocumented procedure.
< / p >
< / dd > < / dl >
2025-06-24 20:01:11 +01:00
< dl class = "first-deffn" >
< dt class = "deffn" id = "index-resource_002dpool_002ddestroyed_002derror_003f" > < span class = "category-def" > Procedure: < / span > < span > < strong class = "def-name" > resource-pool-destroyed-error?< / strong > < var class = "def-var-arguments" > obj< / var > < a class = "copiable-link" href = "#index-resource_002dpool_002ddestroyed_002derror_003f" > ¶ < / a > < / span > < / dt >
2025-06-24 10:55:10 +02:00
< dd > < p > Undocumented procedure.
< / p >
< / dd > < / dl >
2025-06-24 20:01:11 +01:00
< dl class = "first-deffn" >
< dt class = "deffn" id = "index-resource_002dpool_002dstats" > < span class = "category-def" > Procedure: < / span > < span > < strong class = "def-name" > resource-pool-stats< / strong > < var class = "def-var-arguments" > _ KEY: #:timeout< / var > < a class = "copiable-link" href = "#index-resource_002dpool_002dstats" > ¶ < / a > < / span > < / dt >
2025-06-24 10:55:10 +02:00
< dd > < p > Undocumented procedure.
< / p >
< / dd > < / dl >
2025-06-24 20:01:11 +01:00
< dl class = "first-deffn" >
< dt class = "deffn" id = "index-resource_002dpool_002dtimeout_002derror_002dpool" > < span class = "category-def" > Procedure: < / span > < span > < strong class = "def-name" > resource-pool-timeout-error-pool< / strong > < var class = "def-var-arguments" > obj< / var > < a class = "copiable-link" href = "#index-resource_002dpool_002dtimeout_002derror_002dpool" > ¶ < / a > < / span > < / dt >
2025-06-24 10:55:10 +02:00
< dd > < p > Undocumented procedure.
< / p >
< / dd > < / dl >
2025-06-24 20:01:11 +01:00
< dl class = "first-deffn" >
< dt class = "deffn" id = "index-resource_002dpool_002dtimeout_002derror_003f" > < span class = "category-def" > Procedure: < / span > < span > < strong class = "def-name" > resource-pool-timeout-error?< / strong > < var class = "def-var-arguments" > obj< / var > < a class = "copiable-link" href = "#index-resource_002dpool_002dtimeout_002derror_003f" > ¶ < / a > < / span > < / dt >
2025-06-24 10:55:10 +02:00
< dd > < p > Undocumented procedure.
< / p >
< / dd > < / dl >
2025-06-24 20:01:11 +01:00
< dl class = "first-deffn" >
< dt class = "deffn" id = "index-resource_002dpool_002dtoo_002dmany_002dwaiters_002derror_002dpool" > < span class = "category-def" > Procedure: < / span > < span > < strong class = "def-name" > resource-pool-too-many-waiters-error-pool< / strong > < var class = "def-var-arguments" > obj< / var > < a class = "copiable-link" href = "#index-resource_002dpool_002dtoo_002dmany_002dwaiters_002derror_002dpool" > ¶ < / a > < / span > < / dt >
2025-06-24 10:55:10 +02:00
< dd > < p > Undocumented procedure.
< / p >
< / dd > < / dl >
2025-06-24 20:01:11 +01:00
< dl class = "first-deffn" >
< dt class = "deffn" id = "index-resource_002dpool_002dtoo_002dmany_002dwaiters_002derror_002dwaiters_002dcount" > < span class = "category-def" > Procedure: < / span > < span > < strong class = "def-name" > resource-pool-too-many-waiters-error-waiters-count< / strong > < var class = "def-var-arguments" > obj< / var > < a class = "copiable-link" href = "#index-resource_002dpool_002dtoo_002dmany_002dwaiters_002derror_002dwaiters_002dcount" > ¶ < / a > < / span > < / dt >
2025-06-24 10:55:10 +02:00
< dd > < p > Undocumented procedure.
< / p >
< / dd > < / dl >
2025-06-24 20:01:11 +01:00
< dl class = "first-deffn" >
< dt class = "deffn" id = "index-resource_002dpool_002dtoo_002dmany_002dwaiters_002derror_003f" > < span class = "category-def" > Procedure: < / span > < span > < strong class = "def-name" > resource-pool-too-many-waiters-error?< / strong > < var class = "def-var-arguments" > obj< / var > < a class = "copiable-link" href = "#index-resource_002dpool_002dtoo_002dmany_002dwaiters_002derror_003f" > ¶ < / a > < / span > < / dt >
2025-06-24 10:55:10 +02:00
< dd > < p > Undocumented procedure.
< / p >
< / dd > < / dl >
2025-06-24 20:01:11 +01:00
< / div >
< div class = "subsection-level-extent" id = "Record-Types" >
< h4 class = "subsection" > < span > 1.5.4 Record Types< a class = "copiable-link" href = "#Record-Types" > ¶ < / a > < / span > < / h4 >
< dl class = "first-deftp" >
< dt class = "deftp" id = "index-_0026resource_002dpool_002ddestroy_002dresource" > < span class = "category-def" > Record type: < / span > < span > < strong class = "def-name" > & resource-pool-destroy-resource< / strong > < a class = "copiable-link" href = "#index-_0026resource_002dpool_002ddestroy_002dresource" > ¶ < / a > < / span > < / dt >
2025-06-24 10:55:10 +02:00
< dd > < p > This record type has the following fields:
< / p >
2025-06-24 20:01:11 +01:00
< ul class = "itemize mark-bullet" >
2025-06-24 10:55:10 +02:00
< / ul >
< / dd > < / dl >
2025-06-24 20:01:11 +01:00
< dl class = "first-deftp" >
< dt class = "deftp" id = "index-_0026resource_002dpool_002ddestroyed" > < span class = "category-def" > Record type: < / span > < span > < strong class = "def-name" > & resource-pool-destroyed< / strong > < a class = "copiable-link" href = "#index-_0026resource_002dpool_002ddestroyed" > ¶ < / a > < / span > < / dt >
2025-06-24 10:55:10 +02:00
< dd > < p > This record type has the following fields:
< / p >
2025-06-24 20:01:11 +01:00
< ul class = "itemize mark-bullet" >
< li > < code class = "code" > pool< / code > < / li > < / ul >
2025-06-24 10:55:10 +02:00
< / dd > < / dl >
2025-06-24 20:01:11 +01:00
< dl class = "first-deftp" >
< dt class = "deftp" id = "index-_0026resource_002dpool_002dtimeout" > < span class = "category-def" > Record type: < / span > < span > < strong class = "def-name" > & resource-pool-timeout< / strong > < a class = "copiable-link" href = "#index-_0026resource_002dpool_002dtimeout" > ¶ < / a > < / span > < / dt >
2025-06-24 10:55:10 +02:00
< dd > < p > This record type has the following fields:
< / p >
2025-06-24 20:01:11 +01:00
< ul class = "itemize mark-bullet" >
< li > < code class = "code" > pool< / code > < / li > < / ul >
2025-06-24 10:55:10 +02:00
< / dd > < / dl >
2025-06-24 20:01:11 +01:00
< dl class = "first-deftp" >
< dt class = "deftp" id = "index-_0026resource_002dpool_002dtoo_002dmany_002dwaiters" > < span class = "category-def" > Record type: < / span > < span > < strong class = "def-name" > & resource-pool-too-many-waiters< / strong > < a class = "copiable-link" href = "#index-_0026resource_002dpool_002dtoo_002dmany_002dwaiters" > ¶ < / a > < / span > < / dt >
2025-06-24 10:55:10 +02:00
< dd > < p > This record type has the following fields:
< / p >
2025-06-24 20:01:11 +01:00
< ul class = "itemize mark-bullet" >
< li > < code class = "code" > pool< / code > < / li > < li > < code class = "code" > waiters-count< / code > < / li > < / ul >
2025-06-24 10:55:10 +02:00
< / dd > < / dl >
< hr >
2025-06-24 20:01:11 +01:00
< / div >
< / div >
< div class = "section-level-extent" id = "knots_005fthread_002dpool" >
< div class = "nav-panel" >
< p >
Next: < a href = "#knots_005ftimeout" accesskey = "n" rel = "next" > (knots timeout)< / a > , Previous: < a href = "#knots_005fresource_002dpool" accesskey = "p" rel = "prev" > (knots resource-pool)< / a > , Up: < a href = "#API" accesskey = "u" rel = "up" > API< / a > [< a href = "#SEC_Contents" title = "Table of contents" rel = "contents" > Contents< / a > ][< a href = "#Concept-Index" title = "Index" rel = "index" > Index< / a > ]< / p >
< / div >
< h3 class = "section" id = "g_t_0028knots-thread_002dpool_0029" > < span > 1.6 (knots thread-pool)< a class = "copiable-link" href = "#g_t_0028knots-thread_002dpool_0029" > ¶ < / a > < / span > < / h3 >
2025-06-24 10:55:10 +02:00
2025-06-24 20:01:11 +01:00
< ul class = "mini-toc" >
< li > < a href = "#Macros-3" accesskey = "1" > Macros< / a > < / li >
< li > < a href = "#Procedures-5" accesskey = "2" > Procedures< / a > < / li >
< li > < a href = "#Record-Types-1" accesskey = "3" > Record Types< / a > < / li >
< / ul >
< div class = "subsection-level-extent" id = "Macros-3" >
< h4 class = "subsection" > < span > 1.6.1 Macros< a class = "copiable-link" href = "#Macros-3" > ¶ < / a > < / span > < / h4 >
< dl class = "first-deffn first-defmac-alias-first-deffn" >
< dt class = "deffn defmac-alias-deffn" id = "index-fixed_002dsize_002dthread_002dpool_002dchannel" > < span class = "category-def" > Macro: < / span > < span > < strong class = "def-name" > fixed-size-thread-pool-channel< / strong > < var class = "def-var-arguments" > a< / var > < a class = "copiable-link" href = "#index-fixed_002dsize_002dthread_002dpool_002dchannel" > ¶ < / a > < / span > < / dt >
2025-06-24 10:55:10 +02:00
< dd > < p > Undocumented macro.
< / p >
< / dd > < / dl >
2025-06-24 20:01:11 +01:00
< dl class = "first-deffn first-defmac-alias-first-deffn" >
< dt class = "deffn defmac-alias-deffn" id = "index-fixed_002dsize_002dthread_002dpool_002dcurrent_002dprocedures" > < span class = "category-def" > Macro: < / span > < span > < strong class = "def-name" > fixed-size-thread-pool-current-procedures< / strong > < var class = "def-var-arguments" > a< / var > < a class = "copiable-link" href = "#index-fixed_002dsize_002dthread_002dpool_002dcurrent_002dprocedures" > ¶ < / a > < / span > < / dt >
2025-06-24 10:55:10 +02:00
< dd > < p > Undocumented macro.
< / p >
< / dd > < / dl >
2025-06-24 20:01:11 +01:00
< dl class = "first-deffn first-defmac-alias-first-deffn" >
< dt class = "deffn defmac-alias-deffn" id = "index-fixed_002dsize_002dthread_002dpool_003f" > < span class = "category-def" > Macro: < / span > < span > < strong class = "def-name" > fixed-size-thread-pool?< / strong > < var class = "def-var-arguments" > a< / var > < a class = "copiable-link" href = "#index-fixed_002dsize_002dthread_002dpool_003f" > ¶ < / a > < / span > < / dt >
2025-06-24 10:55:10 +02:00
< dd > < p > Undocumented macro.
< / p >
< / dd > < / dl >
2025-06-24 20:01:11 +01:00
< dl class = "first-deffn first-defmac-alias-first-deffn" >
< dt class = "deffn defmac-alias-deffn" id = "index-thread_002dpool_002dresource_002dpool" > < span class = "category-def" > Macro: < / span > < span > < strong class = "def-name" > thread-pool-resource-pool< / strong > < var class = "def-var-arguments" > a< / var > < a class = "copiable-link" href = "#index-thread_002dpool_002dresource_002dpool" > ¶ < / a > < / span > < / dt >
2025-06-24 10:55:10 +02:00
< dd > < p > Undocumented macro.
< / p >
< / dd > < / dl >
2025-06-24 20:01:11 +01:00
< dl class = "first-deffn first-defmac-alias-first-deffn" >
< dt class = "deffn defmac-alias-deffn" id = "index-thread_002dpool_003f" > < span class = "category-def" > Macro: < / span > < span > < strong class = "def-name" > thread-pool?< / strong > < var class = "def-var-arguments" > a< / var > < a class = "copiable-link" href = "#index-thread_002dpool_003f" > ¶ < / a > < / span > < / dt >
2025-06-24 10:55:10 +02:00
< dd > < p > Undocumented macro.
< / p >
< / dd > < / dl >
2025-06-24 20:01:11 +01:00
< / div >
< div class = "subsection-level-extent" id = "Procedures-5" >
< h4 class = "subsection" > < span > 1.6.2 Procedures< a class = "copiable-link" href = "#Procedures-5" > ¶ < / a > < / span > < / h4 >
< dl class = "first-deffn" >
< dt class = "deffn" id = "index-call_002dwith_002dthread" > < span class = "category-def" > Procedure: < / span > < span > < strong class = "def-name" > call-with-thread< / strong > < var class = "def-var-arguments" > _ _ KEY: #:duration-logger #:checkout-timeout #:channel #:destroy-thread-on-exception? #:max-waiters< / var > < a class = "copiable-link" href = "#index-call_002dwith_002dthread" > ¶ < / a > < / span > < / dt >
2025-06-24 10:55:10 +02:00
< dd > < p > Send PROC to the thread pool through CHANNEL. Return the result of
PROC. If already in the thread pool, call PROC immediately.
< / p >
< / dd > < / dl >
2025-06-24 20:01:11 +01:00
< dl class = "first-deffn" >
< dt class = "deffn" id = "index-destroy_002dthread_002dpool" > < span class = "category-def" > Procedure: < / span > < span > < strong class = "def-name" > destroy-thread-pool< / strong > < var class = "def-var-arguments" > a< / var > < a class = "copiable-link" href = "#index-destroy_002dthread_002dpool" > ¶ < / a > < / span > < / dt >
2025-06-24 10:55:10 +02:00
< dd > < p > Undocumented procedure.
< / p >
< / dd > < / dl >
2025-06-24 20:01:11 +01:00
< dl class = "first-deffn" >
< dt class = "deffn" id = "index-make_002dfixed_002dsize_002dthread_002dpool" > < span class = "category-def" > Procedure: < / span > < span > < strong class = "def-name" > make-fixed-size-thread-pool< / strong > < var class = "def-var-arguments" > _ KEY: #:thread-initializer #:thread-destructor #:delay-logger #:duration-logger #:thread-lifetime #:expire-on-exception? #:name #:use-default-io-waiters? #:default-checkout-timeout< / var > < a class = "copiable-link" href = "#index-make_002dfixed_002dsize_002dthread_002dpool" > ¶ < / a > < / span > < / dt >
2025-06-24 10:55:10 +02:00
< dd > < p > Undocumented procedure.
< / p >
< / dd > < / dl >
2025-06-24 20:01:11 +01:00
< dl class = "first-deffn" >
< dt class = "deffn" id = "index-make_002dthread_002dpool" > < span class = "category-def" > Procedure: < / span > < span > < strong class = "def-name" > make-thread-pool< / strong > < var class = "def-var-arguments" > _ KEY: #:min-size #:scheduler #:thread-initializer #:thread-destructor #:delay-logger #:duration-logger #:thread-lifetime #:expire-on-exception? #:name #:use-default-io-waiters? #:default-checkout-timeout< / var > < a class = "copiable-link" href = "#index-make_002dthread_002dpool" > ¶ < / a > < / span > < / dt >
2025-06-24 10:55:10 +02:00
< dd > < p > Return a channel used to offload work to a dedicated thread. ARGS are
the arguments of the thread pool procedure.
< / p >
< / dd > < / dl >
2025-06-24 20:01:11 +01:00
< dl class = "first-deffn" >
< dt class = "deffn" id = "index-set_002dthread_002dname" > < span class = "category-def" > Procedure: < / span > < span > < strong class = "def-name" > set-thread-name< / strong > < var class = "def-var-arguments" > a< / var > < a class = "copiable-link" href = "#index-set_002dthread_002dname" > ¶ < / a > < / span > < / dt >
2025-06-24 10:55:10 +02:00
< dd > < p > Set the name of the calling thread to NAME. NAME is truncated to 15
bytes.
< / p >
< / dd > < / dl >
2025-06-24 20:01:11 +01:00
< dl class = "first-deffn" >
< dt class = "deffn" id = "index-thread_002dname" > < span class = "category-def" > Procedure: < / span > < span > < strong class = "def-name" > thread-name< / strong > < a class = "copiable-link" href = "#index-thread_002dname" > ¶ < / a > < / span > < / dt >
2025-06-24 10:55:10 +02:00
< dd > < p > Return the name of the calling thread as a string.
< / p >
< / dd > < / dl >
2025-06-24 20:01:11 +01:00
< dl class = "first-deffn" >
< dt class = "deffn" id = "index-thread_002dpool_002darguments_002dparameter" > < span class = "category-def" > Procedure: < / span > < span > < strong class = "def-name" > thread-pool-arguments-parameter< / strong > < var class = "def-var-arguments" > a< / var > < a class = "copiable-link" href = "#index-thread_002dpool_002darguments_002dparameter" > ¶ < / a > < / span > < / dt >
2025-06-24 10:55:10 +02:00
< dd > < p > Undocumented procedure.
< / p >
< / dd > < / dl >
2025-06-24 20:01:11 +01:00
< dl class = "first-deffn" >
< dt class = "deffn" id = "index-thread_002dpool_002ddefault_002dcheckout_002dtimeout" > < span class = "category-def" > Procedure: < / span > < span > < strong class = "def-name" > thread-pool-default-checkout-timeout< / strong > < var class = "def-var-arguments" > a< / var > < a class = "copiable-link" href = "#index-thread_002dpool_002ddefault_002dcheckout_002dtimeout" > ¶ < / a > < / span > < / dt >
2025-06-24 10:55:10 +02:00
< dd > < p > Undocumented procedure.
< / p >
< / dd > < / dl >
2025-06-24 20:01:11 +01:00
< dl class = "first-deffn" >
< dt class = "deffn" id = "index-thread_002dpool_002dtimeout_002derror_002dpool" > < span class = "category-def" > Procedure: < / span > < span > < strong class = "def-name" > thread-pool-timeout-error-pool< / strong > < var class = "def-var-arguments" > obj< / var > < a class = "copiable-link" href = "#index-thread_002dpool_002dtimeout_002derror_002dpool" > ¶ < / a > < / span > < / dt >
2025-06-24 10:55:10 +02:00
< dd > < p > Undocumented procedure.
< / p >
< / dd > < / dl >
2025-06-24 20:01:11 +01:00
< dl class = "first-deffn" >
< dt class = "deffn" id = "index-thread_002dpool_002dtimeout_002derror_003f" > < span class = "category-def" > Procedure: < / span > < span > < strong class = "def-name" > thread-pool-timeout-error?< / strong > < var class = "def-var-arguments" > obj< / var > < a class = "copiable-link" href = "#index-thread_002dpool_002dtimeout_002derror_003f" > ¶ < / a > < / span > < / dt >
2025-06-24 10:55:10 +02:00
< dd > < p > Undocumented procedure.
< / p >
< / dd > < / dl >
2025-06-24 20:01:11 +01:00
< / div >
< div class = "subsection-level-extent" id = "Record-Types-1" >
< h4 class = "subsection" > < span > 1.6.3 Record Types< a class = "copiable-link" href = "#Record-Types-1" > ¶ < / a > < / span > < / h4 >
< dl class = "first-deftp" >
< dt class = "deftp" id = "index-_0026thread_002dpool_002dtimeout_002derror" > < span class = "category-def" > Record type: < / span > < span > < strong class = "def-name" > & thread-pool-timeout-error< / strong > < a class = "copiable-link" href = "#index-_0026thread_002dpool_002dtimeout_002derror" > ¶ < / a > < / span > < / dt >
2025-06-24 10:55:10 +02:00
< dd > < p > This record type has the following fields:
< / p >
2025-06-24 20:01:11 +01:00
< ul class = "itemize mark-bullet" >
< li > < code class = "code" > pool< / code > < / li > < / ul >
2025-06-24 10:55:10 +02:00
< / dd > < / dl >
< hr >
2025-06-24 20:01:11 +01:00
< / div >
< / div >
< div class = "section-level-extent" id = "knots_005ftimeout" >
< div class = "nav-panel" >
< p >
Next: < a href = "#knots_005fweb_002dserver" accesskey = "n" rel = "next" > (knots web-server)< / a > , Previous: < a href = "#knots_005fthread_002dpool" accesskey = "p" rel = "prev" > (knots thread-pool)< / a > , Up: < a href = "#API" accesskey = "u" rel = "up" > API< / a > [< a href = "#SEC_Contents" title = "Table of contents" rel = "contents" > Contents< / a > ][< a href = "#Concept-Index" title = "Index" rel = "index" > Index< / a > ]< / p >
< / div >
< h3 class = "section" id = "g_t_0028knots-timeout_0029" > < span > 1.7 (knots timeout)< a class = "copiable-link" href = "#g_t_0028knots-timeout_0029" > ¶ < / a > < / span > < / h3 >
2025-06-24 10:55:10 +02:00
2025-06-24 20:01:11 +01:00
< ul class = "mini-toc" >
< li > < a href = "#Procedures-6" accesskey = "1" > Procedures< / a > < / li >
< li > < a href = "#Record-Types-2" accesskey = "2" > Record Types< / a > < / li >
< / ul >
< div class = "subsection-level-extent" id = "Procedures-6" >
< h4 class = "subsection" > < span > 1.7.1 Procedures< a class = "copiable-link" href = "#Procedures-6" > ¶ < / a > < / span > < / h4 >
< dl class = "first-deffn" >
< dt class = "deffn" id = "index-port_002dread_002dtimeout_002derror_003f" > < span class = "category-def" > Procedure: < / span > < span > < strong class = "def-name" > port-read-timeout-error?< / strong > < var class = "def-var-arguments" > obj< / var > < a class = "copiable-link" href = "#index-port_002dread_002dtimeout_002derror_003f" > ¶ < / a > < / span > < / dt >
2025-06-24 10:55:10 +02:00
< dd > < p > Undocumented procedure.
< / p >
< / dd > < / dl >
2025-06-24 20:01:11 +01:00
< dl class = "first-deffn" >
< dt class = "deffn" id = "index-port_002dtimeout_002derror_003f" > < span class = "category-def" > Procedure: < / span > < span > < strong class = "def-name" > port-timeout-error?< / strong > < var class = "def-var-arguments" > obj< / var > < a class = "copiable-link" href = "#index-port_002dtimeout_002derror_003f" > ¶ < / a > < / span > < / dt >
2025-06-24 10:55:10 +02:00
< dd > < p > Undocumented procedure.
< / p >
< / dd > < / dl >
2025-06-24 20:01:11 +01:00
< dl class = "first-deffn" >
< dt class = "deffn" id = "index-port_002dwrite_002dtimeout_002derror_003f" > < span class = "category-def" > Procedure: < / span > < span > < strong class = "def-name" > port-write-timeout-error?< / strong > < var class = "def-var-arguments" > obj< / var > < a class = "copiable-link" href = "#index-port_002dwrite_002dtimeout_002derror_003f" > ¶ < / a > < / span > < / dt >
2025-06-24 10:55:10 +02:00
< dd > < p > Undocumented procedure.
< / p >
< / dd > < / dl >
2025-06-24 20:01:11 +01:00
< dl class = "first-deffn" >
< dt class = "deffn" id = "index-wait_002duntil_002dport_002dreadable_002doperation" > < span class = "category-def" > Procedure: < / span > < span > < strong class = "def-name" > wait-until-port-readable-operation< / strong > < var class = "def-var-arguments" > a< / var > < a class = "copiable-link" href = "#index-wait_002duntil_002dport_002dreadable_002doperation" > ¶ < / a > < / span > < / dt >
2025-06-24 10:55:10 +02:00
< dd > < p > Make an operation that will succeed when PORT is readable.
< / p >
< / dd > < / dl >
2025-06-24 20:01:11 +01:00
< dl class = "first-deffn" >
< dt class = "deffn" id = "index-wait_002duntil_002dport_002dwritable_002doperation" > < span class = "category-def" > Procedure: < / span > < span > < strong class = "def-name" > wait-until-port-writable-operation< / strong > < var class = "def-var-arguments" > a< / var > < a class = "copiable-link" href = "#index-wait_002duntil_002dport_002dwritable_002doperation" > ¶ < / a > < / span > < / dt >
2025-06-24 10:55:10 +02:00
< dd > < p > Make an operation that will succeed when PORT is writable.
< / p >
< / dd > < / dl >
2025-06-24 20:01:11 +01:00
< dl class = "first-deffn" >
< dt class = "deffn" id = "index-with_002dfibers_002dtimeout" > < span class = "category-def" > Procedure: < / span > < span > < strong class = "def-name" > with-fibers-timeout< / strong > < var class = "def-var-arguments" > _ KEY: #:timeout #:on-timeout< / var > < a class = "copiable-link" href = "#index-with_002dfibers_002dtimeout" > ¶ < / a > < / span > < / dt >
2025-06-24 10:55:10 +02:00
< dd > < p > Undocumented procedure.
< / p >
< / dd > < / dl >
2025-06-24 20:01:11 +01:00
< dl class = "first-deffn" >
< dt class = "deffn" id = "index-with_002dport_002dtimeouts" > < span class = "category-def" > Procedure: < / span > < span > < strong class = "def-name" > with-port-timeouts< / strong > < var class = "def-var-arguments" > _ KEY: #:timeout #:read-timeout #:write-timeout< / var > < a class = "copiable-link" href = "#index-with_002dport_002dtimeouts" > ¶ < / a > < / span > < / dt >
2025-06-24 10:55:10 +02:00
< dd > < p > Undocumented procedure.
< / p >
< / dd > < / dl >
2025-06-24 20:01:11 +01:00
< / div >
< div class = "subsection-level-extent" id = "Record-Types-2" >
< h4 class = "subsection" > < span > 1.7.2 Record Types< a class = "copiable-link" href = "#Record-Types-2" > ¶ < / a > < / span > < / h4 >
< dl class = "first-deftp" >
< dt class = "deftp" id = "index-_0026port_002dread_002dtimeout_002derror" > < span class = "category-def" > Record type: < / span > < span > < strong class = "def-name" > & port-read-timeout-error< / strong > < a class = "copiable-link" href = "#index-_0026port_002dread_002dtimeout_002derror" > ¶ < / a > < / span > < / dt >
2025-06-24 10:55:10 +02:00
< dd > < p > This record type has the following fields:
< / p >
2025-06-24 20:01:11 +01:00
< ul class = "itemize mark-bullet" >
< li > < code class = "code" > thunk< / code > < / li > < li > < code class = "code" > port< / code > < / li > < / ul >
2025-06-24 10:55:10 +02:00
< / dd > < / dl >
2025-06-24 20:01:11 +01:00
< dl class = "first-deftp" >
< dt class = "deftp" id = "index-_0026port_002dtimeout_002derror" > < span class = "category-def" > Record type: < / span > < span > < strong class = "def-name" > & port-timeout-error< / strong > < a class = "copiable-link" href = "#index-_0026port_002dtimeout_002derror" > ¶ < / a > < / span > < / dt >
2025-06-24 10:55:10 +02:00
< dd > < p > This record type has the following fields:
< / p >
2025-06-24 20:01:11 +01:00
< ul class = "itemize mark-bullet" >
< li > < code class = "code" > thunk< / code > < / li > < li > < code class = "code" > port< / code > < / li > < / ul >
2025-06-24 10:55:10 +02:00
< / dd > < / dl >
2025-06-24 20:01:11 +01:00
< dl class = "first-deftp" >
< dt class = "deftp" id = "index-_0026port_002dwrite_002dtimeout_002derror" > < span class = "category-def" > Record type: < / span > < span > < strong class = "def-name" > & port-write-timeout-error< / strong > < a class = "copiable-link" href = "#index-_0026port_002dwrite_002dtimeout_002derror" > ¶ < / a > < / span > < / dt >
2025-06-24 10:55:10 +02:00
< dd > < p > This record type has the following fields:
< / p >
2025-06-24 20:01:11 +01:00
< ul class = "itemize mark-bullet" >
< li > < code class = "code" > thunk< / code > < / li > < li > < code class = "code" > port< / code > < / li > < / ul >
2025-06-24 10:55:10 +02:00
< / dd > < / dl >
< hr >
2025-06-24 20:01:11 +01:00
< / div >
< / div >
< div class = "section-level-extent" id = "knots_005fweb_002dserver" >
< div class = "nav-panel" >
< p >
Previous: < a href = "#knots_005ftimeout" accesskey = "p" rel = "prev" > (knots timeout)< / a > , Up: < a href = "#API" accesskey = "u" rel = "up" > API< / a > [< a href = "#SEC_Contents" title = "Table of contents" rel = "contents" > Contents< / a > ][< a href = "#Concept-Index" title = "Index" rel = "index" > Index< / a > ]< / p >
< / div >
< h3 class = "section" id = "g_t_0028knots-web_002dserver_0029" > < span > 1.8 (knots web-server)< a class = "copiable-link" href = "#g_t_0028knots-web_002dserver_0029" > ¶ < / a > < / span > < / h3 >
2025-06-24 10:55:10 +02:00
2025-06-24 20:01:11 +01:00
< ul class = "mini-toc" >
< li > < a href = "#Macros-4" accesskey = "1" > Macros< / a > < / li >
< li > < a href = "#Procedures-7" accesskey = "2" > Procedures< / a > < / li >
< li > < a href = "#Record-Types-3" accesskey = "3" > Record Types< / a > < / li >
< / ul >
< div class = "subsection-level-extent" id = "Macros-4" >
< h4 class = "subsection" > < span > 1.8.1 Macros< a class = "copiable-link" href = "#Macros-4" > ¶ < / a > < / span > < / h4 >
< dl class = "first-deffn first-defmac-alias-first-deffn" >
< dt class = "deffn defmac-alias-deffn" id = "index-web_002dserver_002dport" > < span class = "category-def" > Macro: < / span > < span > < strong class = "def-name" > web-server-port< / strong > < var class = "def-var-arguments" > a< / var > < a class = "copiable-link" href = "#index-web_002dserver_002dport" > ¶ < / a > < / span > < / dt >
2025-06-24 10:55:10 +02:00
< dd > < p > Undocumented macro.
< / p >
< / dd > < / dl >
2025-06-24 20:01:11 +01:00
< dl class = "first-deffn first-defmac-alias-first-deffn" >
< dt class = "deffn defmac-alias-deffn" id = "index-web_002dserver_002dsocket" > < span class = "category-def" > Macro: < / span > < span > < strong class = "def-name" > web-server-socket< / strong > < var class = "def-var-arguments" > a< / var > < a class = "copiable-link" href = "#index-web_002dserver_002dsocket" > ¶ < / a > < / span > < / dt >
2025-06-24 10:55:10 +02:00
< dd > < p > Undocumented macro.
< / p >
< / dd > < / dl >
2025-06-24 20:01:11 +01:00
< dl class = "first-deffn first-defmac-alias-first-deffn" >
< dt class = "deffn defmac-alias-deffn" id = "index-web_002dserver_003f" > < span class = "category-def" > Macro: < / span > < span > < strong class = "def-name" > web-server?< / strong > < var class = "def-var-arguments" > a< / var > < a class = "copiable-link" href = "#index-web_002dserver_003f" > ¶ < / a > < / span > < / dt >
2025-06-24 10:55:10 +02:00
< dd > < p > Undocumented macro.
< / p >
< / dd > < / dl >
2025-06-24 20:01:11 +01:00
< / div >
< div class = "subsection-level-extent" id = "Procedures-7" >
< h4 class = "subsection" > < span > 1.8.2 Procedures< a class = "copiable-link" href = "#Procedures-7" > ¶ < / a > < / span > < / h4 >
< dl class = "first-deffn" >
< dt class = "deffn" id = "index-default_002dwrite_002dresponse_002dexception_002dhandler" > < span class = "category-def" > Procedure: < / span > < span > < strong class = "def-name" > default-write-response-exception-handler< / strong > < var class = "def-var-arguments" > a b< / var > < a class = "copiable-link" href = "#index-default_002dwrite_002dresponse_002dexception_002dhandler" > ¶ < / a > < / span > < / dt >
2025-06-24 10:55:10 +02:00
< dd > < p > Undocumented procedure.
< / p >
< / dd > < / dl >
2025-06-24 20:01:11 +01:00
< dl class = "first-deffn" >
< dt class = "deffn" id = "index-make_002dchunked_002doutput_002dport_002fknots" > < span class = "category-def" > Procedure: < / span > < span > < strong class = "def-name" > make-chunked-output-port/knots< / strong > < var class = "def-var-arguments" > _ KEY: #:keep-alive? #:buffering< / var > < a class = "copiable-link" href = "#index-make_002dchunked_002doutput_002dport_002fknots" > ¶ < / a > < / span > < / dt >
2025-06-24 10:55:10 +02:00
< dd > < p > 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.
< / p >
< / dd > < / dl >
2025-06-24 20:01:11 +01:00
< dl class = "first-deffn" >
< dt class = "deffn" id = "index-read_002drequest_002dbody_002fknots" > < span class = "category-def" > Procedure: < / span > < span > < strong class = "def-name" > read-request-body/knots< / strong > < var class = "def-var-arguments" > a< / var > < a class = "copiable-link" href = "#index-read_002drequest_002dbody_002fknots" > ¶ < / a > < / span > < / dt >
2025-06-24 10:55:10 +02:00
< dd > < p > Undocumented procedure.
< / p >
< / dd > < / dl >
2025-06-24 20:01:11 +01:00
< dl class = "first-deffn" >
< dt class = "deffn" id = "index-request_002dbody_002dended_002dprematurely_002derror_003f" > < span class = "category-def" > Procedure: < / span > < span > < strong class = "def-name" > request-body-ended-prematurely-error?< / strong > < var class = "def-var-arguments" > obj< / var > < a class = "copiable-link" href = "#index-request_002dbody_002dended_002dprematurely_002derror_003f" > ¶ < / a > < / span > < / dt >
2025-06-24 10:55:10 +02:00
< dd > < p > Undocumented procedure.
< / p >
< / dd > < / dl >
2025-06-24 20:01:11 +01:00
< dl class = "first-deffn" >
< dt class = "deffn" id = "index-request_002dbody_002dport_002fknots" > < span class = "category-def" > Procedure: < / span > < span > < strong class = "def-name" > request-body-port/knots< / strong > < var class = "def-var-arguments" > a< / var > < a class = "copiable-link" href = "#index-request_002dbody_002dport_002fknots" > ¶ < / a > < / span > < / dt >
2025-06-24 10:55:10 +02:00
< dd > < p > Undocumented procedure.
< / p >
< / dd > < / dl >
2025-06-24 20:01:11 +01:00
< dl class = "first-deffn" >
< dt class = "deffn" id = "index-run_002dknots_002dweb_002dserver" > < span class = "category-def" > Procedure: < / span > < span > < strong class = "def-name" > run-knots-web-server< / strong > < var class = "def-var-arguments" > _ KEY: #:host #:family #:addr #:port #:socket #:read-request-exception-handler #:write-response-exception-handler #:connection-idle-timeout #:connection-buffer-size< / var > < a class = "copiable-link" href = "#index-run_002dknots_002dweb_002dserver" > ¶ < / a > < / span > < / dt >
2025-06-24 10:55:10 +02:00
< dd > < p > Run the knots web server.
< / p >
< p > HANDLER should be a procedure that takes one argument, the HTTP request
and returns two values, the response and response body.
< / p >
< p > For example, here is a simple " Hello, World!" server:
< / p >
< div class = "example" >
2025-06-24 20:01:11 +01:00
< pre class = "example-preformatted" > (define (handler request)
2025-06-24 10:55:10 +02:00
(let ((body (read-request-body request)))
(values '((content-type . (text/plain)))
" Hello, World!" )))
(run-knots-web-server handler)
< / pre > < / div >
< p > The response and body will be run through ‘ sanitize-response’ before
sending back to the client.
< / p >
< / dd > < / dl >
2025-06-24 20:01:11 +01:00
< dl class = "first-deffn" >
< dt class = "deffn" id = "index-sanitize_002dresponse" > < span class = "category-def" > Procedure: < / span > < span > < strong class = "def-name" > sanitize-response< / strong > < var class = "def-var-arguments" > a b c< / var > < a class = "copiable-link" href = "#index-sanitize_002dresponse" > ¶ < / a > < / span > < / dt >
2025-06-24 10:55:10 +02:00
< dd > < p > " Sanitize" the given response and body, making them appropriate for the
given request.
< / p >
< p > 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.
< / p >
< p > 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.
< / p >
< / dd > < / dl >
2025-06-24 20:01:11 +01:00
< / div >
< div class = "subsection-level-extent" id = "Record-Types-3" >
< h4 class = "subsection" > < span > 1.8.3 Record Types< a class = "copiable-link" href = "#Record-Types-3" > ¶ < / a > < / span > < / h4 >
< dl class = "first-deftp" >
< dt class = "deftp" id = "index-_0026request_002dbody_002dended_002dprematurely" > < span class = "category-def" > Record type: < / span > < span > < strong class = "def-name" > & request-body-ended-prematurely< / strong > < a class = "copiable-link" href = "#index-_0026request_002dbody_002dended_002dprematurely" > ¶ < / a > < / span > < / dt >
2025-06-24 10:55:10 +02:00
< dd > < p > This record type has the following fields:
< / p >
2025-06-24 20:01:11 +01:00
< ul class = "itemize mark-bullet" >
< li > < code class = "code" > bytes-read< / code > < / li > < / ul >
2025-06-24 10:55:10 +02:00
< / dd > < / dl >
2025-06-24 20:01:11 +01:00
< hr >
< / div >
< / div >
< / div >
< div class = "appendix-level-extent" id = "Version-History" >
< div class = "nav-panel" >
< p >
Next: < a href = "#Copying-Information" accesskey = "n" rel = "next" > Copying Information< / a > , Previous: < a href = "#API" accesskey = "p" rel = "prev" > API< / a > , Up: < a href = "#Top" accesskey = "u" rel = "up" > Overview< / a > [< a href = "#SEC_Contents" title = "Table of contents" rel = "contents" > Contents< / a > ][< a href = "#Concept-Index" title = "Index" rel = "index" > Index< / a > ]< / p >
< / div >
< h2 class = "appendix" id = "Version-History-1" > < span > Appendix A Version History< a class = "copiable-link" href = "#Version-History-1" > ¶ < / a > < / span > < / h2 >
< dl class = "table" >
< dt > < em class = "dfn" > Version 0.Y.0, Month DD, 20YY< / em > < / dt >
< dd > < ul class = "itemize mark-bullet" >
< li > No initial release has yet been made.
< / li > < / ul >
< / dd >
< / dl >
< hr >
< / div >
< div class = "appendix-level-extent" id = "Copying-Information" >
< div class = "nav-panel" >
2025-06-24 10:55:10 +02:00
< p >
2025-06-24 20:01:11 +01:00
Next: < a href = "#Concept-Index" accesskey = "n" rel = "next" > Concept Index< / a > , Previous: < a href = "#Version-History" accesskey = "p" rel = "prev" > Version History< / a > , Up: < a href = "#Top" accesskey = "u" rel = "up" > Overview< / a > [< a href = "#SEC_Contents" title = "Table of contents" rel = "contents" > Contents< / a > ][< a href = "#Concept-Index" title = "Index" rel = "index" > Index< / a > ]< / p >
< / div >
< h2 class = "appendix" id = "Copying-Information-1" > < span > Appendix B Copying Information< a class = "copiable-link" href = "#Copying-Information-1" > ¶ < / a > < / span > < / h2 >
< p > Copyright © 2024, 2025 Christopher Baines < mail@cbaines.net>
2025-06-24 10:55:10 +02:00
< / p >
2025-06-24 20:01:11 +01:00
< p > 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.
< / p >
< hr >
< / div >
< div class = "unnumbered-level-extent" id = "Concept-Index" >
< div class = "nav-panel" >
2025-06-24 10:55:10 +02:00
< p >
2025-06-24 20:01:11 +01:00
Next: < a href = "#Data-Type-Index" accesskey = "n" rel = "next" > Data Type Index< / a > , Previous: < a href = "#Copying-Information" accesskey = "p" rel = "prev" > Copying Information< / a > , Up: < a href = "#Top" accesskey = "u" rel = "up" > Overview< / a > [< a href = "#SEC_Contents" title = "Table of contents" rel = "contents" > Contents< / a > ][< a href = "#Concept-Index" title = "Index" rel = "index" > Index< / a > ]< / p >
< / div >
< h2 class = "unnumbered" id = "Concept-Index-1" > < span > Concept Index< a class = "copiable-link" href = "#Concept-Index-1" > ¶ < / a > < / span > < / h2 >
< hr >
< / div >
< div class = "unnumbered-level-extent" id = "Data-Type-Index" >
< div class = "nav-panel" >
< p >
Next: < a href = "#Procedure-Index" accesskey = "n" rel = "next" > Procedure Index< / a > , Previous: < a href = "#Concept-Index" accesskey = "p" rel = "prev" > Concept Index< / a > , Up: < a href = "#Top" accesskey = "u" rel = "up" > Overview< / a > [< a href = "#SEC_Contents" title = "Table of contents" rel = "contents" > Contents< / a > ][< a href = "#Concept-Index" title = "Index" rel = "index" > Index< / a > ]< / p >
< / div >
< h2 class = "unnumbered" id = "Data-Type-Index-1" > < span > Data Type Index< a class = "copiable-link" href = "#Data-Type-Index-1" > ¶ < / a > < / span > < / h2 >
< div class = "printindex tp-printindex" >
< table class = "tp-entries-printindex" border = "0" >
< tr > < td > < / td > < th class = "entries-header-printindex" > Index Entry< / th > < th class = "sections-header-printindex" > Section< / th > < / tr >
< tr > < td colspan = "3" > < hr > < / td > < / tr >
< tr > < th id = "Data-Type-Index_tp_symbol-1" > & < / th > < / tr >
< tr > < td > < / td > < td class = "printindex-index-entry" > < a href = "#index-_0026port_002dread_002dtimeout_002derror" > < code > & port-read-timeout-error< / code > < / a > < / td > < td class = "printindex-index-section" > < a href = "#knots_005ftimeout" > knots_timeout< / a > < / td > < / tr >
< tr > < td > < / td > < td class = "printindex-index-entry" > < a href = "#index-_0026port_002dtimeout_002derror" > < code > & port-timeout-error< / code > < / a > < / td > < td class = "printindex-index-section" > < a href = "#knots_005ftimeout" > knots_timeout< / a > < / td > < / tr >
< tr > < td > < / td > < td class = "printindex-index-entry" > < a href = "#index-_0026port_002dwrite_002dtimeout_002derror" > < code > & port-write-timeout-error< / code > < / a > < / td > < td class = "printindex-index-section" > < a href = "#knots_005ftimeout" > knots_timeout< / a > < / td > < / tr >
< tr > < td > < / td > < td class = "printindex-index-entry" > < a href = "#index-_0026request_002dbody_002dended_002dprematurely" > < code > & request-body-ended-prematurely< / code > < / a > < / td > < td class = "printindex-index-section" > < a href = "#knots_005fweb_002dserver" > knots_web-server< / a > < / td > < / tr >
< tr > < td > < / td > < td class = "printindex-index-entry" > < a href = "#index-_0026resource_002dpool_002ddestroy_002dresource" > < code > & resource-pool-destroy-resource< / code > < / a > < / td > < td class = "printindex-index-section" > < a href = "#knots_005fresource_002dpool" > knots_resource-pool< / a > < / td > < / tr >
< tr > < td > < / td > < td class = "printindex-index-entry" > < a href = "#index-_0026resource_002dpool_002ddestroyed" > < code > & resource-pool-destroyed< / code > < / a > < / td > < td class = "printindex-index-section" > < a href = "#knots_005fresource_002dpool" > knots_resource-pool< / a > < / td > < / tr >
< tr > < td > < / td > < td class = "printindex-index-entry" > < a href = "#index-_0026resource_002dpool_002dtimeout" > < code > & resource-pool-timeout< / code > < / a > < / td > < td class = "printindex-index-section" > < a href = "#knots_005fresource_002dpool" > knots_resource-pool< / a > < / td > < / tr >
< tr > < td > < / td > < td class = "printindex-index-entry" > < a href = "#index-_0026resource_002dpool_002dtoo_002dmany_002dwaiters" > < code > & resource-pool-too-many-waiters< / code > < / a > < / td > < td class = "printindex-index-section" > < a href = "#knots_005fresource_002dpool" > knots_resource-pool< / a > < / td > < / tr >
< tr > < td > < / td > < td class = "printindex-index-entry" > < a href = "#index-_0026thread_002dpool_002dtimeout_002derror" > < code > & thread-pool-timeout-error< / code > < / a > < / td > < td class = "printindex-index-section" > < a href = "#knots_005fthread_002dpool" > knots_thread-pool< / a > < / td > < / tr >
< tr > < td colspan = "3" > < hr > < / td > < / tr >
2025-06-24 10:55:10 +02:00
< / table >
2025-06-24 20:01:11 +01:00
< / div >
2025-06-24 10:55:10 +02:00
2025-06-24 20:01:11 +01:00
< hr >
< / div >
< div class = "unnumbered-level-extent" id = "Procedure-Index" >
< div class = "nav-panel" >
2025-06-24 10:55:10 +02:00
< p >
2025-06-24 20:01:11 +01:00
Next: < a href = "#Variable-Index" accesskey = "n" rel = "next" > Variable Index< / a > , Previous: < a href = "#Data-Type-Index" accesskey = "p" rel = "prev" > Data Type Index< / a > , Up: < a href = "#Top" accesskey = "u" rel = "up" > Overview< / a > [< a href = "#SEC_Contents" title = "Table of contents" rel = "contents" > Contents< / a > ][< a href = "#Concept-Index" title = "Index" rel = "index" > Index< / a > ]< / p >
< / div >
< h2 class = "unnumbered" id = "Procedure-Index-1" > < span > Procedure Index< a class = "copiable-link" href = "#Procedure-Index-1" > ¶ < / a > < / span > < / h2 >
< div class = "printindex fn-printindex" >
< table class = "fn-letters-header-printindex" > < tr > < th > Jump to: < / th > < td > < a class = "summary-letter-printindex" href = "#Procedure-Index_fn_letter-C" > < b > C< / b > < / a >
< a class = "summary-letter-printindex" href = "#Procedure-Index_fn_letter-D" > < b > D< / b > < / a >
< a class = "summary-letter-printindex" href = "#Procedure-Index_fn_letter-F" > < b > F< / b > < / a >
< a class = "summary-letter-printindex" href = "#Procedure-Index_fn_letter-M" > < b > M< / b > < / a >
< a class = "summary-letter-printindex" href = "#Procedure-Index_fn_letter-N" > < b > N< / b > < / a >
< a class = "summary-letter-printindex" href = "#Procedure-Index_fn_letter-P" > < b > P< / b > < / a >
< a class = "summary-letter-printindex" href = "#Procedure-Index_fn_letter-R" > < b > R< / b > < / a >
< a class = "summary-letter-printindex" href = "#Procedure-Index_fn_letter-S" > < b > S< / b > < / a >
< a class = "summary-letter-printindex" href = "#Procedure-Index_fn_letter-T" > < b > T< / b > < / a >
< a class = "summary-letter-printindex" href = "#Procedure-Index_fn_letter-W" > < b > W< / b > < / a >
< / td > < / tr > < / table >
< table class = "fn-entries-printindex" border = "0" >
< tr > < td > < / td > < th class = "entries-header-printindex" > Index Entry< / th > < th class = "sections-header-printindex" > Section< / th > < / tr >
< tr > < td colspan = "3" > < hr > < / td > < / tr >
< tr > < th id = "Procedure-Index_fn_letter-C" > C< / th > < / tr >
2025-06-25 17:52:47 +01:00
< tr > < td > < / td > < td class = "printindex-index-entry" > < a href = "#index-call_002dwith_002dparallelism_002dlimiter" > < code > call-with-parallelism-limiter< / code > < / a > < / td > < td class = "printindex-index-section" > < a href = "#knots_005fparallelism" > knots_parallelism< / a > < / td > < / tr >
2025-06-24 20:01:11 +01:00
< tr > < td > < / td > < td class = "printindex-index-entry" > < a href = "#index-call_002dwith_002dresource_002dfrom_002dpool" > < code > call-with-resource-from-pool< / code > < / a > < / td > < td class = "printindex-index-section" > < a href = "#knots_005fresource_002dpool" > knots_resource-pool< / a > < / td > < / tr >
< tr > < td > < / td > < td class = "printindex-index-entry" > < a href = "#index-call_002dwith_002dthread" > < code > call-with-thread< / code > < / a > < / td > < td class = "printindex-index-section" > < a href = "#knots_005fthread_002dpool" > knots_thread-pool< / a > < / td > < / tr >
< tr > < td colspan = "3" > < hr > < / td > < / tr >
< tr > < th id = "Procedure-Index_fn_letter-D" > D< / th > < / tr >
< tr > < td > < / td > < td class = "printindex-index-entry" > < a href = "#index-default_002dwrite_002dresponse_002dexception_002dhandler" > < code > default-write-response-exception-handler< / code > < / a > < / td > < td class = "printindex-index-section" > < a href = "#knots_005fweb_002dserver" > knots_web-server< / a > < / td > < / tr >
2025-06-25 17:52:47 +01:00
< tr > < td > < / td > < td class = "printindex-index-entry" > < a href = "#index-destroy_002dparallelism_002dlimiter" > < code > destroy-parallelism-limiter< / code > < / a > < / td > < td class = "printindex-index-section" > < a href = "#knots_005fparallelism" > knots_parallelism< / a > < / td > < / tr >
2025-06-24 20:01:11 +01:00
< tr > < td > < / td > < td class = "printindex-index-entry" > < a href = "#index-destroy_002dresource_002dpool" > < code > destroy-resource-pool< / code > < / a > < / td > < td class = "printindex-index-section" > < a href = "#knots_005fresource_002dpool" > knots_resource-pool< / a > < / td > < / tr >
< tr > < td > < / td > < td class = "printindex-index-entry" > < a href = "#index-destroy_002dthread_002dpool" > < code > destroy-thread-pool< / code > < / a > < / td > < td class = "printindex-index-section" > < a href = "#knots_005fthread_002dpool" > knots_thread-pool< / a > < / td > < / tr >
< tr > < td colspan = "3" > < hr > < / td > < / tr >
< tr > < th id = "Procedure-Index_fn_letter-F" > F< / th > < / tr >
< tr > < td > < / td > < td class = "printindex-index-entry" > < a href = "#index-fiberize" > < code > fiberize< / code > < / a > < / td > < td class = "printindex-index-section" > < a href = "#knots_005fparallelism" > knots_parallelism< / a > < / td > < / tr >
< tr > < td > < / td > < td class = "printindex-index-entry" > < a href = "#index-fibers_002dbatch_002dfor_002deach" > < code > fibers-batch-for-each< / code > < / a > < / td > < td class = "printindex-index-section" > < a href = "#knots_005fparallelism" > knots_parallelism< / a > < / td > < / tr >
< tr > < td > < / td > < td class = "printindex-index-entry" > < a href = "#index-fibers_002dbatch_002dmap" > < code > fibers-batch-map< / code > < / a > < / td > < td class = "printindex-index-section" > < a href = "#knots_005fparallelism" > knots_parallelism< / a > < / td > < / tr >
< tr > < td > < / td > < td class = "printindex-index-entry" > < a href = "#index-fibers_002ddelay" > < code > fibers-delay< / code > < / a > < / td > < td class = "printindex-index-section" > < a href = "#knots_005fpromise" > knots_promise< / a > < / td > < / tr >
< tr > < td > < / td > < td class = "printindex-index-entry" > < a href = "#index-fibers_002dfor_002deach" > < code > fibers-for-each< / code > < / a > < / td > < td class = "printindex-index-section" > < a href = "#knots_005fparallelism" > knots_parallelism< / a > < / td > < / tr >
< tr > < td > < / td > < td class = "printindex-index-entry" > < a href = "#index-fibers_002dforce" > < code > fibers-force< / code > < / a > < / td > < td class = "printindex-index-section" > < a href = "#knots_005fpromise" > knots_promise< / a > < / td > < / tr >
< tr > < td > < / td > < td class = "printindex-index-entry" > < a href = "#index-fibers_002dlet" > < code > fibers-let< / code > < / a > < / td > < td class = "printindex-index-section" > < a href = "#knots_005fparallelism" > knots_parallelism< / a > < / td > < / tr >
< tr > < td > < / td > < td class = "printindex-index-entry" > < a href = "#index-fibers_002dmap" > < code > fibers-map< / code > < / a > < / td > < td class = "printindex-index-section" > < a href = "#knots_005fparallelism" > knots_parallelism< / a > < / td > < / tr >
< tr > < td > < / td > < td class = "printindex-index-entry" > < a href = "#index-fibers_002dmap_002dwith_002dprogress" > < code > fibers-map-with-progress< / code > < / a > < / td > < td class = "printindex-index-section" > < a href = "#knots_005fparallelism" > knots_parallelism< / a > < / td > < / tr >
< tr > < td > < / td > < td class = "printindex-index-entry" > < a href = "#index-fibers_002dparallel" > < code > fibers-parallel< / code > < / a > < / td > < td class = "printindex-index-section" > < a href = "#knots_005fparallelism" > knots_parallelism< / a > < / td > < / tr >
< tr > < td > < / td > < td class = "printindex-index-entry" > < a href = "#index-fibers_002dpromise_002dreset" > < code > fibers-promise-reset< / code > < / a > < / td > < td class = "printindex-index-section" > < a href = "#knots_005fpromise" > knots_promise< / a > < / td > < / tr >
< tr > < td > < / td > < td class = "printindex-index-entry" > < a href = "#index-fibers_002dpromise_002dresult_002davailable_003f" > < code > fibers-promise-result-available?< / code > < / a > < / td > < td class = "printindex-index-section" > < a href = "#knots_005fpromise" > knots_promise< / a > < / td > < / tr >
< tr > < td > < / td > < td class = "printindex-index-entry" > < a href = "#index-fibers_002dpromise_003f" > < code > fibers-promise?< / code > < / a > < / td > < td class = "printindex-index-section" > < a href = "#knots_005fpromise" > knots_promise< / a > < / td > < / tr >
< tr > < td > < / td > < td class = "printindex-index-entry" > < a href = "#index-fixed_002dsize_002dthread_002dpool_002dchannel" > < code > fixed-size-thread-pool-channel< / code > < / a > < / td > < td class = "printindex-index-section" > < a href = "#knots_005fthread_002dpool" > knots_thread-pool< / a > < / td > < / tr >
< tr > < td > < / td > < td class = "printindex-index-entry" > < a href = "#index-fixed_002dsize_002dthread_002dpool_002dcurrent_002dprocedures" > < code > fixed-size-thread-pool-current-procedures< / code > < / a > < / td > < td class = "printindex-index-section" > < a href = "#knots_005fthread_002dpool" > knots_thread-pool< / a > < / td > < / tr >
< tr > < td > < / td > < td class = "printindex-index-entry" > < a href = "#index-fixed_002dsize_002dthread_002dpool_003f" > < code > fixed-size-thread-pool?< / code > < / a > < / td > < td class = "printindex-index-section" > < a href = "#knots_005fthread_002dpool" > knots_thread-pool< / a > < / td > < / tr >
< tr > < td colspan = "3" > < hr > < / td > < / tr >
< tr > < th id = "Procedure-Index_fn_letter-M" > M< / th > < / tr >
< tr > < td > < / td > < td class = "printindex-index-entry" > < a href = "#index-make_002dchunked_002doutput_002dport_002fknots" > < code > make-chunked-output-port/knots< / code > < / a > < / td > < td class = "printindex-index-section" > < a href = "#knots_005fweb_002dserver" > knots_web-server< / a > < / td > < / tr >
2025-06-25 17:52:47 +01:00
< tr > < td > < / td > < td class = "printindex-index-entry" > < a href = "#index-make_002dfixed_002dsize_002dresource_002dpool" > < code > make-fixed-size-resource-pool< / code > < / a > < / td > < td class = "printindex-index-section" > < a href = "#knots_005fresource_002dpool" > knots_resource-pool< / a > < / td > < / tr >
2025-06-24 20:01:11 +01:00
< tr > < td > < / td > < td class = "printindex-index-entry" > < a href = "#index-make_002dfixed_002dsize_002dthread_002dpool" > < code > make-fixed-size-thread-pool< / code > < / a > < / td > < td class = "printindex-index-section" > < a href = "#knots_005fthread_002dpool" > knots_thread-pool< / a > < / td > < / tr >
2025-06-25 17:52:47 +01:00
< tr > < td > < / td > < td class = "printindex-index-entry" > < a href = "#index-make_002dparallelism_002dlimiter" > < code > make-parallelism-limiter< / code > < / a > < / td > < td class = "printindex-index-section" > < a href = "#knots_005fparallelism" > knots_parallelism< / a > < / td > < / tr >
2025-06-24 20:01:11 +01:00
< tr > < td > < / td > < td class = "printindex-index-entry" > < a href = "#index-make_002dresource_002dpool" > < code > make-resource-pool< / code > < / a > < / td > < td class = "printindex-index-section" > < a href = "#knots_005fresource_002dpool" > knots_resource-pool< / a > < / td > < / tr >
< tr > < td > < / td > < td class = "printindex-index-entry" > < a href = "#index-make_002dresource_002dpool_002ddestroy_002dresource_002dexception" > < code > make-resource-pool-destroy-resource-exception< / code > < / a > < / td > < td class = "printindex-index-section" > < a href = "#knots_005fresource_002dpool" > knots_resource-pool< / a > < / td > < / tr >
< tr > < td > < / td > < td class = "printindex-index-entry" > < a href = "#index-make_002dthread_002dpool" > < code > make-thread-pool< / code > < / a > < / td > < td class = "printindex-index-section" > < a href = "#knots_005fthread_002dpool" > knots_thread-pool< / a > < / td > < / tr >
< tr > < td colspan = "3" > < hr > < / td > < / tr >
< tr > < th id = "Procedure-Index_fn_letter-N" > N< / th > < / tr >
< tr > < td > < / td > < td class = "printindex-index-entry" > < a href = "#index-non_002dblocking_002dopen_002dsocket_002dfor_002duri" > < code > non-blocking-open-socket-for-uri< / code > < / a > < / td > < td class = "printindex-index-section" > < a href = "#knots_005fnon_002dblocking" > knots_non-blocking< / a > < / td > < / tr >
< tr > < td > < / td > < td class = "printindex-index-entry" > < a href = "#index-non_002dblocking_002dport" > < code > non-blocking-port< / code > < / a > < / td > < td class = "printindex-index-section" > < a href = "#knots_005fnon_002dblocking" > knots_non-blocking< / a > < / td > < / tr >
< tr > < td colspan = "3" > < hr > < / td > < / tr >
< tr > < th id = "Procedure-Index_fn_letter-P" > P< / th > < / tr >
2025-06-25 17:52:47 +01:00
< tr > < td > < / td > < td class = "printindex-index-entry" > < a href = "#index-parallelism_002dlimiter_003f" > < code > parallelism-limiter?< / code > < / a > < / td > < td class = "printindex-index-section" > < a href = "#knots_005fparallelism" > knots_parallelism< / a > < / td > < / tr >
2025-06-24 20:01:11 +01:00
< tr > < td > < / td > < td class = "printindex-index-entry" > < a href = "#index-port_002dread_002dtimeout_002derror_003f" > < code > port-read-timeout-error?< / code > < / a > < / td > < td class = "printindex-index-section" > < a href = "#knots_005ftimeout" > knots_timeout< / a > < / td > < / tr >
< tr > < td > < / td > < td class = "printindex-index-entry" > < a href = "#index-port_002dtimeout_002derror_003f" > < code > port-timeout-error?< / code > < / a > < / td > < td class = "printindex-index-section" > < a href = "#knots_005ftimeout" > knots_timeout< / a > < / td > < / tr >
< tr > < td > < / td > < td class = "printindex-index-entry" > < a href = "#index-port_002dwrite_002dtimeout_002derror_003f" > < code > port-write-timeout-error?< / code > < / a > < / td > < td class = "printindex-index-section" > < a href = "#knots_005ftimeout" > knots_timeout< / a > < / td > < / tr >
< tr > < td colspan = "3" > < hr > < / td > < / tr >
< tr > < th id = "Procedure-Index_fn_letter-R" > R< / th > < / tr >
< tr > < td > < / td > < td class = "printindex-index-entry" > < a href = "#index-read_002drequest_002dbody_002fknots" > < code > read-request-body/knots< / code > < / a > < / td > < td class = "printindex-index-section" > < a href = "#knots_005fweb_002dserver" > knots_web-server< / a > < / td > < / tr >
< tr > < td > < / td > < td class = "printindex-index-entry" > < a href = "#index-request_002dbody_002dended_002dprematurely_002derror_003f" > < code > request-body-ended-prematurely-error?< / code > < / a > < / td > < td class = "printindex-index-section" > < a href = "#knots_005fweb_002dserver" > knots_web-server< / a > < / td > < / tr >
< tr > < td > < / td > < td class = "printindex-index-entry" > < a href = "#index-request_002dbody_002dport_002fknots" > < code > request-body-port/knots< / code > < / a > < / td > < td class = "printindex-index-section" > < a href = "#knots_005fweb_002dserver" > knots_web-server< / a > < / td > < / tr >
< tr > < td > < / td > < td class = "printindex-index-entry" > < a href = "#index-resource_002dpool_002dchannel" > < code > resource-pool-channel< / code > < / a > < / td > < td class = "printindex-index-section" > < a href = "#knots_005fresource_002dpool" > knots_resource-pool< / a > < / td > < / tr >
< tr > < td > < / td > < td class = "printindex-index-entry" > < a href = "#index-resource_002dpool_002dconfiguration" > < code > resource-pool-configuration< / code > < / a > < / td > < td class = "printindex-index-section" > < a href = "#knots_005fresource_002dpool" > knots_resource-pool< / a > < / td > < / tr >
< tr > < td > < / td > < td class = "printindex-index-entry" > < a href = "#index-resource_002dpool_002ddestroy_002dresource_002dexception_003f" > < code > resource-pool-destroy-resource-exception?< / code > < / a > < / td > < td class = "printindex-index-section" > < a href = "#knots_005fresource_002dpool" > knots_resource-pool< / a > < / td > < / tr >
< tr > < td > < / td > < td class = "printindex-index-entry" > < a href = "#index-resource_002dpool_002ddestroyed_002derror_002dpool" > < code > resource-pool-destroyed-error-pool< / code > < / a > < / td > < td class = "printindex-index-section" > < a href = "#knots_005fresource_002dpool" > knots_resource-pool< / a > < / td > < / tr >
< tr > < td > < / td > < td class = "printindex-index-entry" > < a href = "#index-resource_002dpool_002ddestroyed_002derror_003f" > < code > resource-pool-destroyed-error?< / code > < / a > < / td > < td class = "printindex-index-section" > < a href = "#knots_005fresource_002dpool" > knots_resource-pool< / a > < / td > < / tr >
< tr > < td > < / td > < td class = "printindex-index-entry" > < a href = "#index-resource_002dpool_002dname" > < code > resource-pool-name< / code > < / a > < / td > < td class = "printindex-index-section" > < a href = "#knots_005fresource_002dpool" > knots_resource-pool< / a > < / td > < / tr >
< tr > < td > < / td > < td class = "printindex-index-entry" > < a href = "#index-resource_002dpool_002dstats" > < code > resource-pool-stats< / code > < / a > < / td > < td class = "printindex-index-section" > < a href = "#knots_005fresource_002dpool" > knots_resource-pool< / a > < / td > < / tr >
< tr > < td > < / td > < td class = "printindex-index-entry" > < a href = "#index-resource_002dpool_002dtimeout_002derror_002dpool" > < code > resource-pool-timeout-error-pool< / code > < / a > < / td > < td class = "printindex-index-section" > < a href = "#knots_005fresource_002dpool" > knots_resource-pool< / a > < / td > < / tr >
< tr > < td > < / td > < td class = "printindex-index-entry" > < a href = "#index-resource_002dpool_002dtimeout_002derror_003f" > < code > resource-pool-timeout-error?< / code > < / a > < / td > < td class = "printindex-index-section" > < a href = "#knots_005fresource_002dpool" > knots_resource-pool< / a > < / td > < / tr >
< tr > < td > < / td > < td class = "printindex-index-entry" > < a href = "#index-resource_002dpool_002dtoo_002dmany_002dwaiters_002derror_002dpool" > < code > resource-pool-too-many-waiters-error-pool< / code > < / a > < / td > < td class = "printindex-index-section" > < a href = "#knots_005fresource_002dpool" > knots_resource-pool< / a > < / td > < / tr >
< tr > < td > < / td > < td class = "printindex-index-entry" > < a href = "#index-resource_002dpool_002dtoo_002dmany_002dwaiters_002derror_002dwaiters_002dcount" > < code > resource-pool-too-many-waiters-error-waiters-count< / code > < / a > < / td > < td class = "printindex-index-section" > < a href = "#knots_005fresource_002dpool" > knots_resource-pool< / a > < / td > < / tr >
< tr > < td > < / td > < td class = "printindex-index-entry" > < a href = "#index-resource_002dpool_002dtoo_002dmany_002dwaiters_002derror_003f" > < code > resource-pool-too-many-waiters-error?< / code > < / a > < / td > < td class = "printindex-index-section" > < a href = "#knots_005fresource_002dpool" > knots_resource-pool< / a > < / td > < / tr >
< tr > < td > < / td > < td class = "printindex-index-entry" > < a href = "#index-resource_002dpool_003f" > < code > resource-pool?< / code > < / a > < / td > < td class = "printindex-index-section" > < a href = "#knots_005fresource_002dpool" > knots_resource-pool< / a > < / td > < / tr >
< tr > < td > < / td > < td class = "printindex-index-entry" > < a href = "#index-run_002dknots_002dweb_002dserver" > < code > run-knots-web-server< / code > < / a > < / td > < td class = "printindex-index-section" > < a href = "#knots_005fweb_002dserver" > knots_web-server< / a > < / td > < / tr >
< tr > < td colspan = "3" > < hr > < / td > < / tr >
< tr > < th id = "Procedure-Index_fn_letter-S" > S< / th > < / tr >
< tr > < td > < / td > < td class = "printindex-index-entry" > < a href = "#index-sanitize_002dresponse" > < code > sanitize-response< / code > < / a > < / td > < td class = "printindex-index-section" > < a href = "#knots_005fweb_002dserver" > knots_web-server< / a > < / td > < / tr >
< tr > < td > < / td > < td class = "printindex-index-entry" > < a href = "#index-set_002dthread_002dname" > < code > set-thread-name< / code > < / a > < / td > < td class = "printindex-index-section" > < a href = "#knots_005fthread_002dpool" > knots_thread-pool< / a > < / td > < / tr >
< tr > < td > < / td > < td class = "printindex-index-entry" > < a href = "#index-spawn_002dqueueing_002dfiber" > < code > spawn-queueing-fiber< / code > < / a > < / td > < td class = "printindex-index-section" > < a href = "#knots_005fqueue" > knots_queue< / a > < / td > < / tr >
< tr > < td colspan = "3" > < hr > < / td > < / tr >
< tr > < th id = "Procedure-Index_fn_letter-T" > T< / th > < / tr >
< tr > < td > < / td > < td class = "printindex-index-entry" > < a href = "#index-thread_002dname" > < code > thread-name< / code > < / a > < / td > < td class = "printindex-index-section" > < a href = "#knots_005fthread_002dpool" > knots_thread-pool< / a > < / td > < / tr >
< tr > < td > < / td > < td class = "printindex-index-entry" > < a href = "#index-thread_002dpool_002darguments_002dparameter" > < code > thread-pool-arguments-parameter< / code > < / a > < / td > < td class = "printindex-index-section" > < a href = "#knots_005fthread_002dpool" > knots_thread-pool< / a > < / td > < / tr >
< tr > < td > < / td > < td class = "printindex-index-entry" > < a href = "#index-thread_002dpool_002ddefault_002dcheckout_002dtimeout" > < code > thread-pool-default-checkout-timeout< / code > < / a > < / td > < td class = "printindex-index-section" > < a href = "#knots_005fthread_002dpool" > knots_thread-pool< / a > < / td > < / tr >
< tr > < td > < / td > < td class = "printindex-index-entry" > < a href = "#index-thread_002dpool_002dresource_002dpool" > < code > thread-pool-resource-pool< / code > < / a > < / td > < td class = "printindex-index-section" > < a href = "#knots_005fthread_002dpool" > knots_thread-pool< / a > < / td > < / tr >
< tr > < td > < / td > < td class = "printindex-index-entry" > < a href = "#index-thread_002dpool_002dtimeout_002derror_002dpool" > < code > thread-pool-timeout-error-pool< / code > < / a > < / td > < td class = "printindex-index-section" > < a href = "#knots_005fthread_002dpool" > knots_thread-pool< / a > < / td > < / tr >
< tr > < td > < / td > < td class = "printindex-index-entry" > < a href = "#index-thread_002dpool_002dtimeout_002derror_003f" > < code > thread-pool-timeout-error?< / code > < / a > < / td > < td class = "printindex-index-section" > < a href = "#knots_005fthread_002dpool" > knots_thread-pool< / a > < / td > < / tr >
< tr > < td > < / td > < td class = "printindex-index-entry" > < a href = "#index-thread_002dpool_003f" > < code > thread-pool?< / code > < / a > < / td > < td class = "printindex-index-section" > < a href = "#knots_005fthread_002dpool" > knots_thread-pool< / a > < / td > < / tr >
< tr > < td colspan = "3" > < hr > < / td > < / tr >
< tr > < th id = "Procedure-Index_fn_letter-W" > W< / th > < / tr >
< tr > < td > < / td > < td class = "printindex-index-entry" > < a href = "#index-wait_002duntil_002dport_002dreadable_002doperation" > < code > wait-until-port-readable-operation< / code > < / a > < / td > < td class = "printindex-index-section" > < a href = "#knots_005ftimeout" > knots_timeout< / a > < / td > < / tr >
< tr > < td > < / td > < td class = "printindex-index-entry" > < a href = "#index-wait_002duntil_002dport_002dwritable_002doperation" > < code > wait-until-port-writable-operation< / code > < / a > < / td > < td class = "printindex-index-section" > < a href = "#knots_005ftimeout" > knots_timeout< / a > < / td > < / tr >
< tr > < td > < / td > < td class = "printindex-index-entry" > < a href = "#index-web_002dserver_002dport" > < code > web-server-port< / code > < / a > < / td > < td class = "printindex-index-section" > < a href = "#knots_005fweb_002dserver" > knots_web-server< / a > < / td > < / tr >
< tr > < td > < / td > < td class = "printindex-index-entry" > < a href = "#index-web_002dserver_002dsocket" > < code > web-server-socket< / code > < / a > < / td > < td class = "printindex-index-section" > < a href = "#knots_005fweb_002dserver" > knots_web-server< / a > < / td > < / tr >
< tr > < td > < / td > < td class = "printindex-index-entry" > < a href = "#index-web_002dserver_003f" > < code > web-server?< / code > < / a > < / td > < td class = "printindex-index-section" > < a href = "#knots_005fweb_002dserver" > knots_web-server< / a > < / td > < / tr >
< tr > < td > < / td > < td class = "printindex-index-entry" > < a href = "#index-with_002dfibers_002dtimeout" > < code > with-fibers-timeout< / code > < / a > < / td > < td class = "printindex-index-section" > < a href = "#knots_005ftimeout" > knots_timeout< / a > < / td > < / tr >
2025-06-25 17:52:47 +01:00
< tr > < td > < / td > < td class = "printindex-index-entry" > < a href = "#index-with_002dparallelism_002dlimiter" > < code > with-parallelism-limiter< / code > < / a > < / td > < td class = "printindex-index-section" > < a href = "#knots_005fparallelism" > knots_parallelism< / a > < / td > < / tr >
2025-06-24 20:01:11 +01:00
< tr > < td > < / td > < td class = "printindex-index-entry" > < a href = "#index-with_002dport_002dtimeouts" > < code > with-port-timeouts< / code > < / a > < / td > < td class = "printindex-index-section" > < a href = "#knots_005ftimeout" > knots_timeout< / a > < / td > < / tr >
< tr > < td > < / td > < td class = "printindex-index-entry" > < a href = "#index-with_002dresource_002dfrom_002dpool" > < code > with-resource-from-pool< / code > < / a > < / td > < td class = "printindex-index-section" > < a href = "#knots_005fresource_002dpool" > knots_resource-pool< / a > < / td > < / tr >
< tr > < td colspan = "3" > < hr > < / td > < / tr >
< / table >
< table class = "fn-letters-footer-printindex" > < tr > < th > Jump to: < / th > < td > < a class = "summary-letter-printindex" href = "#Procedure-Index_fn_letter-C" > < b > C< / b > < / a >
< a class = "summary-letter-printindex" href = "#Procedure-Index_fn_letter-D" > < b > D< / b > < / a >
< a class = "summary-letter-printindex" href = "#Procedure-Index_fn_letter-F" > < b > F< / b > < / a >
< a class = "summary-letter-printindex" href = "#Procedure-Index_fn_letter-M" > < b > M< / b > < / a >
< a class = "summary-letter-printindex" href = "#Procedure-Index_fn_letter-N" > < b > N< / b > < / a >
< a class = "summary-letter-printindex" href = "#Procedure-Index_fn_letter-P" > < b > P< / b > < / a >
< a class = "summary-letter-printindex" href = "#Procedure-Index_fn_letter-R" > < b > R< / b > < / a >
< a class = "summary-letter-printindex" href = "#Procedure-Index_fn_letter-S" > < b > S< / b > < / a >
< a class = "summary-letter-printindex" href = "#Procedure-Index_fn_letter-T" > < b > T< / b > < / a >
< a class = "summary-letter-printindex" href = "#Procedure-Index_fn_letter-W" > < b > W< / b > < / a >
< / td > < / tr > < / table >
< / div >
2025-06-24 10:55:10 +02:00
< hr >
2025-06-24 20:01:11 +01:00
< / div >
< div class = "unnumbered-level-extent" id = "Variable-Index" >
< div class = "nav-panel" >
2025-06-24 10:55:10 +02:00
< p >
2025-06-24 20:01:11 +01:00
Previous: < a href = "#Procedure-Index" accesskey = "p" rel = "prev" > Procedure Index< / a > , Up: < a href = "#Top" accesskey = "u" rel = "up" > Overview< / a > [< a href = "#SEC_Contents" title = "Table of contents" rel = "contents" > Contents< / a > ][< a href = "#Concept-Index" title = "Index" rel = "index" > Index< / a > ]< / p >
< / div >
< h2 class = "unnumbered" id = "Variable-Index-1" > < span > Variable Index< a class = "copiable-link" href = "#Variable-Index-1" > ¶ < / a > < / span > < / h2 >
< div class = "printindex vr-printindex" >
< table class = "vr-entries-printindex" border = "0" >
< tr > < td > < / td > < th class = "entries-header-printindex" > Index Entry< / th > < th class = "sections-header-printindex" > Section< / th > < / tr >
< tr > < td colspan = "3" > < hr > < / td > < / tr >
< tr > < th id = "Variable-Index_vr_letter-R" > R< / th > < / tr >
< tr > < td > < / td > < td class = "printindex-index-entry" > < a href = "#index-resource_002dpool_002ddefault_002dtimeout_002dhandler" > < code > resource-pool-default-timeout-handler< / code > < / a > < / td > < td class = "printindex-index-section" > < a href = "#knots_005fresource_002dpool" > knots_resource-pool< / a > < / td > < / tr >
< tr > < td colspan = "3" > < hr > < / td > < / tr >
< / table >
< / div >
< / div >
< / div >
2025-06-24 10:55:10 +02:00
< / body >
< / html >