title: When a mutex unlocks does it notify_all or notify_one?
body: <p>As I understand it, when I have a collection of threads protected by a <code>std::lock_guard</code> or <code>std::unique_lock</code> over <code>std::mutex</code> and the mutex is unlocked by either explicitly unlocking it or by the lock going out of scope, then the waiting threads are notified.</p>
  
  <p>Is this notification a <code>notify_one</code> or a <code>notify_all</code>?</p>
  
  <p>I suspect the former to avoid hurry up and wait but would like to be sure.</p>