From 090a2fdc21ac3da94b7262798ecf7d28fb1dfee7 Mon Sep 17 00:00:00 2001 From: Hubert Badocha Date: Wed, 8 Nov 2023 12:43:38 +0100 Subject: [PATCH] pthread: destroy cleanup handlers on cancel JIRA: RTOS-671 --- pthread/pthread.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/pthread/pthread.c b/pthread/pthread.c index 8acb126b..1abce201 100644 --- a/pthread/pthread.c +++ b/pthread/pthread.c @@ -447,6 +447,7 @@ int pthread_cancel(pthread_t thread) } else { if (ctx->cancelstate == PTHREAD_CANCEL_ENABLE) { + _pthread_do_cleanup(ctx); ctx->retval = (void *)PTHREAD_CANCELED; id = ctx->id; mutexUnlock(pthread_common.pthread_list_lock); @@ -589,7 +590,7 @@ int pthread_attr_setschedparam(pthread_attr_t *attr, return EINVAL; if (param->sched_priority > sched_get_priority_max(SCHED_RR) || - param->sched_priority < sched_get_priority_min(SCHED_RR)) + param->sched_priority < sched_get_priority_min(SCHED_RR)) return ENOTSUP; attr->priority = param->sched_priority; @@ -652,7 +653,7 @@ int pthread_attr_getscope(const pthread_attr_t *attr, int pthread_attr_setdetachstate(pthread_attr_t *attr, int detachstate) { if ((detachstate != PTHREAD_CREATE_DETACHED) || - (detachstate != PTHREAD_CREATE_JOINABLE)) { + (detachstate != PTHREAD_CREATE_JOINABLE)) { return EINVAL; }