mirror of
https://github.com/apache/nuttx-apps.git
synced 2026-08-04 05:39:05 +00:00
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
1 changed files with 9 additions and 10 deletions
|
|
@ -60,21 +60,20 @@ static void cleanup(FAR void * data)
|
|||
FAR struct sync_s *sync = (FAR struct sync_s *) data;
|
||||
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);
|
||||
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. "
|
||||
"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)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue