title: Atomic/not-atomic mix, any guarantees?
body: <p>Let's I have GUI thread with code like this:</p>
  
  <pre><code>std::vector&lt;int&gt; vec;
  std::atomic&lt;bool&gt; data_ready{false};
  std::thread th([&amp;data_ready, &amp;vec]() {
     //we get data
     vec.push_back(something);
     data_ready = true;
  });
  draw_progress_dialog();
  while (!data_ready) {
    process_not_user_events();
    sleep_a_little();
  }
  //is it here safe to use vec?
  </code></pre>
  
  <p>As you see I not protect "vec" by any kind of lock, but I not use "vec" in two thread at the same moment, the only problem is memory access reodering,</p>
  
  <p>Is it impossible according to C++11 standard that some modifications in "vec" happens after "data_ready = true;"?</p>
  
  <p>It is not clear (for me) from documentation, is it memory ordering relevant only for other atomics, or not.</p>
  
  <p>Plus question, is "default" memory order is what I want, or have to change memory model?</p>