<assertions>
  <assertion id="1" tag="ref:XSH6:33631:33633">
  The function

  int pthread_mutex_destroy(pthread_mutex_t *mutex);

  destroys the mutex referenced by 'mutex'; the mutex object now becomes
  becomes uninitialized.  An implementation may cause pthread_mutex_destroy()
  to set the object referenced by 'mutex' to an invalid value.
  </assertion>
  <assertion id="2" tag="ref:XSH6:33633:33635">
  A destroyed mutex object can be reinitialized using pthread_mutex_init();
  the results of referencing the object after it has been
  destroyed are undefined.
  </assertion>
  <assertion id="3" tag="ref:XSH6:33651:33651">
  Upon success, it returns a 0;
  </assertion>
  <assertion id="4" tag="ref:XSH6:33657:33661">
  pthread_mutex_destroy() may fail if:

  -[EBUSY] The implementation has detected an attempt to destroy the
  object referenced by 'mutex' while it is locked or referenced.
  -[EINVAL] The value specified by 'mutex' is invalid.

  It shall not return [EINTR]
  </assertion>
  <assertion id="5" tag="ref:XSH6:33636:33636">
  It shall be safe to destroy an initialized mutex that is unlocked.
  </assertion>

</assertions>
