Change-Id: Iddb2204fa792fa9aca5f19838926dddbb09b74a2
int pthread_mutex_destroy(pthread_mutex_t *mutex)
{
- if (__unlikely(mutex == NULL))
- return EINVAL;
+ int ret;
+
+ /* use trylock to ensure that the mutex value is
+ * valid and is not already locked. */
+ ret = pthread_mutex_trylock(mutex);
+ if (ret != 0)
+ return ret;
mutex->value = 0xdead10cc;
return 0;
Differences between current and Android 2.2:
-- <pthread.h>: Add reader/writer locks implementation.
+- <pthread.h>: Add reader/writer locks implementation. Add sanity
+ checking to pthread_mutex_destroy() (e.g. a locked mutex will return
+ EBUSY).
- <semaphore.h>: Use private futexes for semaphore implementation,
unless your set 'pshared' to non-0 when calling sem_init().