Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Further improve locking (Atomic) #91

Closed
wants to merge 2 commits into from
Closed

Conversation

zeripath
Copy link
Contributor

@zeripath zeripath commented May 12, 2021

As a second step improving #90, switch from using a RWMutex to use an
atomic.Value and a reconstruct functions to ensure that the current
templates are referenced in the helper func instead of a global
reference.

Close #92

Signed-off-by: Andrew Thornton [email protected]

zeripath added 2 commits May 12, 2021 09:13
As a second step improving unrolled#90, switch from using a RWMutex to use an
atomic.Value and a reconstruct functions to ensure that the current
templates are referenced in the helper func instead of a global
reference.

Signed-off-by: Andrew Thornton <[email protected]>
Signed-off-by: Andrew Thornton <[email protected]>
@zeripath
Copy link
Contributor Author

I have an alternative coming up that just uses the RWMutex more cleverly

zeripath added a commit to zeripath/render that referenced this pull request May 12, 2021
As a second step improving unrolled#90, only lock when absolutely necessary
and reconstruct functions to ensure that the current templates are
referenced in the helper func instead of a global reference.

Closes unrolled#91

Signed-off-by: Andrew Thornton <[email protected]>
@zeripath zeripath mentioned this pull request May 12, 2021
@zeripath zeripath changed the title Further improve locking Further improve locking (Atomic) May 12, 2021
@zeripath
Copy link
Contributor Author

So I'm gonna close this as I think the RWMutex approach is more extensible.

@zeripath zeripath closed this May 12, 2021
@zeripath zeripath deleted the use-atomic branch May 12, 2021 19:25
unrolled pushed a commit that referenced this pull request May 26, 2021
* Further improve locking (RWMutex version)

As a second step improving #90, only lock when absolutely necessary
and reconstruct functions to ensure that the current templates are
referenced in the helper func instead of a global reference.

Closes #91

Signed-off-by: Andrew Thornton <[email protected]>

* Use fsnotify if using Directory and expose CompileTemplates

If setting IsDevelopment, if we can, use an FsWatcher to recompile the
templates in a separate goroutine. This should definitely increase the
performance of the Development server.

In order to make Asset based Renders have the same improvement - now
that render compilation properly locks the templates we can expose the
CompileTemplates function and allow downstream users to call this
independently when their templates need recompilation.

Contains #92

Signed-off-by: Andrew Thornton <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant