pthreads: Backed most of last pthread changes. Found the 'real' root poblem. A one like error in pthread_mutex.c.
This commit is contained in:
parent
523cfffe25
commit
cfc71db80c
@ -60,21 +60,20 @@ static void cleanup(FAR void * data)
|
|||||||
FAR struct sync_s *sync = (FAR struct sync_s *) data;
|
FAR struct sync_s *sync = (FAR struct sync_s *) data;
|
||||||
int status;
|
int status;
|
||||||
|
|
||||||
#ifdef CONFIG_PTHREAD_MUTEX_UNSAFE
|
/* Note: pthread_cond_wait() will release the mutex while it waits on
|
||||||
|
* condition value. So a EPERM error is not a failure.
|
||||||
|
*/
|
||||||
|
|
||||||
status = pthread_mutex_unlock(&sync->lock);
|
status = pthread_mutex_unlock(&sync->lock);
|
||||||
if (status != 0)
|
if (status == EPERM)
|
||||||
|
{
|
||||||
|
printf("pthread_cleanup: thread did not have mutex locked: %d\n", status);
|
||||||
|
}
|
||||||
|
else if (status != 0)
|
||||||
{
|
{
|
||||||
printf("pthread_cleanup: ERROR pthread_mutex_unlock in cleanup handler. "
|
printf("pthread_cleanup: ERROR pthread_mutex_unlock in cleanup handler. "
|
||||||
"Status: %d\n", status);
|
"Status: %d\n", status);
|
||||||
}
|
}
|
||||||
#else
|
|
||||||
status = pthread_mutex_consistent(&sync->lock);
|
|
||||||
if (status != 0)
|
|
||||||
{
|
|
||||||
printf("pthread_cleanup: ERROR pthread_mutex_consistent in cleanup handler. "
|
|
||||||
"Status: %d\n", status);
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void *cleanup_thread(FAR void * data)
|
static void *cleanup_thread(FAR void * data)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user