I see, m_connectionStates is never reassigned. I guess my confusion was why we needed that volatile in the old code.