title: Is steady_clock monotonic across threads?
body: <p>Are monotonic properties of <code>std::chrono::steady_clock</code> preserved across threads? For example, suppose I have the following program.</p>
  
  <pre><code>#include &lt;chrono&gt;
  #include &lt;mutex&gt;
  #include &lt;thread&gt;
  
  using namespace std;
  using namespace chrono;
  
  mutex m;
  int i = 0;
  
  void do_something(int &amp;x) {
    x += 1;
  }
  
  void f1() {
    unique_lock&lt;mutex&gt; lock(m);
    auto time = steady_clock::now();
    do_something(i);
  }
  
  void f2() {
    unique_lock&lt;mutex&gt; lock(m);
    auto time = steady_clock::now();
    do_something(i);
  }
  
  int main() {
    thread t1(f1);
    thread t2(f2);
    t1.join();
    t2.join();
    return 0;
  }
  </code></pre>
  
  <p>Can I assume that the thread that has the smaller <code>time</code> value in the end (supposing they have different value at all) modified <code>i</code> before the other and that the other saw <code>i</code> as it was left by the first one?</p>