Is IComponent::getState()/setState() thread-safe?

So if I understand what you are saying getState/setState can potentially being called at the same time as process is called… So should the process method use a lock to ensure that
a) the state is not being modified (via setState) in the middle of processing
b) getState gets a fully valid state

I am not sure how else to protect the integrity of the state if getState/setState are not guaranteed to be called outside of process…

Thanks
Yan