When an immutable object is new'ed up in one thread, and shared in second thread (say as a field of shared object), shouldn't second thread synchronize?
Thread1:
=========
x = new SomeObject()
Thread2
=========
if (x != null)
x.DoSomething()
Should there be a memory barrier before x.DoSomething()? is it possible that the assignment to x in the first thread is never visible to the second thread? What is the safe publication pattern for .NET?