title: Is readonly property always "atomic"?
body: <p>Sometimes we have a simple readOnly Property whose value may change</p>
  
  <pre><code>@property (readonly) NSFetchedResultsController * FetchController;
  @property (readonly) NSFetchRequest * FetchRequest;
  @property (readonly) NSPredicate * KeywordPredicate;
  </code></pre>
  
  <p>I suppose when the value change it's done on a blink of an eye through some sort of simple pointer manipulation. Something like</p>
  
  <pre><code>_FetchRequest = newFetchRequest;
  </code></pre>
  
  <p>The actual process of changing may change a lot but the actual change should be on that one line.</p>
  
  <p>The question is, is such simple pointer assignment always atomic? What about if that one line actually consist of several line of machine codes and somebody ask for the property between those machine codes?</p>
  
  <p>At the end the question is whether simple assignment operator on pointers is always atomic or not.</p>
  
  <p>If so, when it is atomic and what's not? Simple assignment operators won't be atomic for complex objects of course.</p>
  
  <p>So to what extend those simple one line assignment operators are atomic? For pointers and primitive types, will it always be?</p>