Hi, Reviewing code of Functions in JMeter we don't understand why Functions that only have values as instance variable (so Beanshell or StringFromFile or IterationCounter (which could be improved to avoid it) are not concerned) synchronize on execute.
It appears "values" instance variable is initialized within StandardJMeterEngine thread and then only accessed in read mode by JMeterThread But it is true that if synchronized is removed then CompoundVariable is accessed by multi threads but it seems it uses thread related data so it should be OK. --
