title: atomic_cas32 in boost interprocess library
body: <p>What does the following lines of code does ?</p>
  
  <pre><code>boost::interprocess::detail::atomic_cas32( &amp;m_shutdown, 1, 1 ) == 1
  </code></pre>
  
  <p>According to the documentation, it does the following thing</p>
  
  <p>//! Compare an boost::uint32_t's value with "cmp".
  //! If they are the same swap the value with "with"
  //! "mem": pointer to the value
  //! "with": what to swap it with
  //! "cmp": the value to compare it to
  //! Returns the old value of *mem</p>
  
  <p>Can somebody tell me what this atomic_cas32 does ?</p>