sigjmp_buf jmpbuf;
pthread_extricate_if extr;
+ /* Check whether the mutex is locked and owned by this thread. */
+ if (mutex->__m_owner != self)
+ return EINVAL;
+
/* Set up extrication interface */
extr.pu_object = cond;
extr.pu_extricate_func = cond_extricate_func;
sigjmp_buf jmpbuf;
pthread_extricate_if extr;
+ /* Check whether the mutex is locked and owned by this thread. */
+ if (mutex->__m_owner != self)
+ return EINVAL;
+
/* Set up extrication interface */
extr.pu_object = cond;
extr.pu_extricate_func = cond_extricate_func;
int pthread_cond_timedwait(pthread_cond_t *cond, pthread_mutex_t *mutex,
const struct timespec * abstime)
{
- /* Check whether the mutex is locked and owned by this thread. */
- if (mutex->__m_owner != self)
- return EINVAL;
-
/* Indirect call through pointer! */
return pthread_cond_tw_rel(cond, mutex, abstime);
}