-
Notifications
You must be signed in to change notification settings - Fork 146
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 #92
Conversation
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 <art27@cantab.net>
Basically there are two options here. This one uses the standard RWMutex instead of Atomics which allows us to keep the mutex around for use in other situations - e.g. if we want to/need to lock on other parts of the Render in future we're going to need to keep a mutex around. |
I've closed #91 as I think this locking approach is better and allows us to use-fsnotify in the directory system. |
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 unrolled#92 Signed-off-by: Andrew Thornton <art27@cantab.net>
It's better that the lock is only in the And if |
* 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 <art27@cantab.net> * 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 <art27@cantab.net>
@zeripath Can this one be closed now? |
yup can be closed! |
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.
Signed-off-by: Andrew Thornton art27@cantab.net