Since no one has the option, I continue give more evidence from my point.
1, use locker in any access to
Tokenstree/Token/TokenIdx is really ugly and bad design.
If you search all the CC's source code by the keyword "Token", you should notice that most usage is a "Token*" which point to data in TokensTree, then every place where you have "Token*" should/must have a locker or a high level locker.
If you search the Tokenstree or other Token related data, you also need an locker.
The whole Tokenstree is dynamically changing (thus it is violate) when you are running the parserthread. The Token contents can be changed/updated, the TokenIdx can be changed even some Tokens will be deleted.
2, Using a lot of locker objects is really ugly. The whole CC's source code is polluted by such mechanism.