tpl/partials: Fix cache locking
authorBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
Thu, 16 Nov 2017 00:23:37 +0000 (01:23 +0100)
committerBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
Thu, 16 Nov 2017 00:23:37 +0000 (01:23 +0100)
commitf5ed04bd4a2ba1a62482b381470f04aad98375f5
treeb5d86ba6494daf02cc1cafb073484f79fe62490c
parent7730d683e8b030c64c5f986b8166c8e65b777ab3
tpl/partials: Fix cache locking

To make sure a cached partial is ony executed  exactly once.

Performance same:

```bash
name                         old time/op    new time/op    delta
TemplateParamsKeysToLower-4    17.2µs ± 0%    16.5µs ± 0%   ~     (p=1.000 n=1+1)
Partial-4                      18.6µs ± 0%    19.4µs ± 0%   ~     (p=1.000 n=1+1)
PartialCached-4                64.2ns ± 0%    63.7ns ± 0%   ~     (p=1.000 n=1+1)

name                         old alloc/op   new alloc/op   delta
TemplateParamsKeysToLower-4    2.66kB ± 0%    2.66kB ± 0%   ~     (all equal)
Partial-4                      1.31kB ± 0%    1.31kB ± 0%   ~     (all equal)
PartialCached-4                 0.00B          0.00B        ~     (all equal)

name                         old allocs/op  new allocs/op  delta
TemplateParamsKeysToLower-4      92.0 ± 0%      92.0 ± 0%   ~     (all equal)
Partial-4                        41.0 ± 0%      41.0 ± 0%   ~     (all equal)
```
tpl/partials/partials.go