This PR brings in a simple-but-effective way of asynchronously building
HTML away from the main doctopus process, and thus closes #61. It does
this like so: the Doctopus now creates a worker proc in a go-loop that
consumes pairs of [fn fn-args] from a core.async channel. Heads can
now put pairs of [generate-html tentacle] on that channel. Both have
an optional async? arg to allow specific enabling of async
generation (needed so that tests can use non-async html creation and
thus still pass, ever).
This PR brings in a simple-but-effective way of asynchronously building HTML away from the main doctopus process, and thus closes #61. It does this like so: the
Doctopus
now creates a worker proc in a go-loop that consumes pairs of[fn fn-args]
from a core.async channel. Heads can now put pairs of[generate-html tentacle]
on that channel. Both have an optionalasync?
arg to allow specific enabling of async generation (needed so that tests can use non-async html creation and thus still pass, ever).Boom!