IsContextPathAllowed() calls ExcludeContextValid() to update excontextvector.
But ExcludeContextValid() almost never do it, since it was checking for
the return of RefreshIfNeeded(). The registry event my have been consumed by
another ShellCache function just before calling ExcludeContextValid().
When starting (When explorer is launched), excludecontextstr and excontextvector
are empty. And they will stay empty forever since the registry is not going to
change (require a setting change I guess).
So remove the return check to RefreshIfNeeded(), which is not needed, there is
already a check to prevent to compute every time excontextvector, .
Also do not take the lock, it was already taken by the caller.
See also
https://github.com/TortoiseGit/TortoiseGit/pull/238