done. Condition variables should always be protected by a mutex.
   The typical use is (if <code class="code"><span class="constructor">D</span></code> is a shared data structure, <code class="code">m</code> its mutex,
   and <code class="code">c</code> is a condition variable):</p>
<pre class="codepre"><code class="code">     <span class="constructor">Mutex</span>.lock m;
     <span class="keyword">while</span> <span class="comment">(* some predicate P over D is not satisfied *)</span> <span class="keyword