From 4e2bf2c639cf769aaf26b742e4c11892189ae057 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niklas=20G=C3=BCrtler?= Date: Thu, 13 Oct 2022 19:22:24 +0200 Subject: [PATCH] Removed the 'configASSERT( xInheritanceOccurred == pdFALSE )' assertion from xQueueSemaphoreTake as the reasoning behind it is wrong; it can trigger on wrongly on highly-contested semaphores on multicore systems. See https://forums.freertos.org/t/15967 (#576) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Niklas Gürtler --- queue.c | 9 --------- 1 file changed, 9 deletions(-) diff --git a/queue.c b/queue.c index c7e759ce1..86dae0bc4 100644 --- a/queue.c +++ b/queue.c @@ -1604,15 +1604,6 @@ BaseType_t xQueueSemaphoreTake( QueueHandle_t xQueue, { if( xTicksToWait == ( TickType_t ) 0 ) { - /* For inheritance to have occurred there must have been an - * initial timeout, and an adjusted timeout cannot become 0, as - * if it were 0 the function would have exited. */ - #if ( configUSE_MUTEXES == 1 ) - { - configASSERT( xInheritanceOccurred == pdFALSE ); - } - #endif /* configUSE_MUTEXES */ - /* The semaphore count was 0 and no block time is specified * (or the block time has expired) so exit now. */ taskEXIT_CRITICAL();