From b580d494e8106161197ee002d58f92b8bc0399f0 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Mon, 10 Apr 2017 08:13:06 -0600 Subject: [PATCH] examples/ostest: pthread clean-up test must call pthread_consistent, not pthread_mutex_unlock() on cancellation if robust mutexes are enabled. --- examples/ostest/pthread_cleanup.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/examples/ostest/pthread_cleanup.c b/examples/ostest/pthread_cleanup.c index 0bddf7e55..b6f018c05 100644 --- a/examples/ostest/pthread_cleanup.c +++ b/examples/ostest/pthread_cleanup.c @@ -60,12 +60,21 @@ static void cleanup(FAR void * data) FAR struct sync_s *sync = (FAR struct sync_s *) data; int status; +#ifdef CONFIG_PTHREAD_MUTEX_UNSAFE status = pthread_mutex_unlock(&sync->lock); 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)