when initializing context is marked as non-saturated *before* it is
initialized; flag isInitialized is now volatile because it is checked
from multiple threads