You're right, and I can 'fix' it with locks, but I suspect the real issue isn't just 'reading actual values.' The deeper problem is that we're keep reconnecting (and producing new r.streamVal) in the first place. Solving that, however, goes far beyond my current understanding of this codebase.
Originally posted by @DmitryNaumov in #1902 (comment)