hugo/tpl
Bjørn Erik Pedersen 929808190f tpl/partials: Fix recently introduced deadlock in partials cache
The change in lock logic for `partialCached` in  0927cf739f was naive as it didn't consider cached partials calling other cached partials.

This changeset may look on the large side for this particular issue, but it pulls in part of a working branch, introducing `context.Context` in the template execution.

Note that the context is only partially implemented in this PR, but the upcoming use cases will, as one example, include having access to the top "dot" (e.g. `Page`) all the way down into partials and shortcodes etc.

The earlier benchmarks rerun against master:

```bash
name              old time/op    new time/op    delta
IncludeCached-10    13.6ms ± 2%    13.8ms ± 1%    ~     (p=0.343 n=4+4)

name              old alloc/op   new alloc/op   delta
IncludeCached-10    5.30MB ± 0%    5.35MB ± 0%  +0.96%  (p=0.029 n=4+4)

name              old allocs/op  new allocs/op  delta
IncludeCached-10     74.7k ± 0%     75.3k ± 0%  +0.77%  (p=0.029 n=4+4)
```

Fixes #9519
2022-02-17 18:47:36 +01:00
..
cast Fix error handling for the time func alias 2021-08-01 13:39:30 +02:00
collections tpl/partials: Fix recently introduced deadlock in partials cache 2022-02-17 18:47:36 +01:00
compare Validate comparison operator argument count 2022-02-05 17:41:43 +01:00
crypto Fix error handling for the time func alias 2021-08-01 13:39:30 +02:00
data Add some basic security policies with sensible defaults 2021-12-16 09:40:22 +01:00
debug Fix error handling for the time func alias 2021-08-01 13:39:30 +02:00
encoding Fix error handling for the time func alias 2021-08-01 13:39:30 +02:00
fmt Fix error handling for the time func alias 2021-08-01 13:39:30 +02:00
hugo Fix error handling for the time func alias 2021-08-01 13:39:30 +02:00
images Fix error handling for the time func alias 2021-08-01 13:39:30 +02:00
inflect Fix error handling for the time func alias 2021-08-01 13:39:30 +02:00
internal tpl/partials: Fix recently introduced deadlock in partials cache 2022-02-17 18:47:36 +01:00
js Fix error handling for the time func alias 2021-08-01 13:39:30 +02:00
lang Fix description of lang.FormatNumberCustom 2021-11-01 18:54:43 +01:00
math tpl/partials: Make sure a cached partial is invoked only once 2022-02-17 11:53:24 +01:00
openapi/openapi3 Simplify some integration tests 2022-02-10 20:43:19 +01:00
os Add some basic security policies with sensible defaults 2021-12-16 09:40:22 +01:00
partials tpl/partials: Fix recently introduced deadlock in partials cache 2022-02-17 18:47:36 +01:00
path tpl/path: Add path.Clean 2021-10-05 16:15:10 +02:00
reflect Fix error handling for the time func alias 2021-08-01 13:39:30 +02:00
resources tpl/resources: Add empty method mapping for GetRemote 2021-12-17 10:30:10 +01:00
safe Fix error handling for the time func alias 2021-08-01 13:39:30 +02:00
site Fix error handling for the time func alias 2021-08-01 13:39:30 +02:00
strings Fix error handling for the time func alias 2021-08-01 13:39:30 +02:00
templates tpl/templates: Fix templates.Exist issue with base templates 2022-02-09 22:33:07 +01:00
time tpl/time: Use configured location when date passed to Format is string 2021-10-30 16:09:38 +02:00
tplimpl tpl/partials: Fix recently introduced deadlock in partials cache 2022-02-17 18:47:36 +01:00
transform Always use content to resolve content type in resources.GetRemote 2021-12-17 09:50:28 +01:00
urls Fix error handling for the time func alias 2021-08-01 13:39:30 +02:00
template.go tpl/partials: Fix recently introduced deadlock in partials cache 2022-02-17 18:47:36 +01:00
template_info.go Add --printUnusedTemplates 2022-02-15 20:01:57 +01:00
template_test.go Create lightweight forks of text/template and html/template 2019-12-12 09:59:34 +01:00