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)
Co-authored-by: Niklas Gürtler <niklas.guertler@tacterion.com>
diff --git a/queue.c b/queue.c
index c7e759c..86dae0b 100644
--- a/queue.c
+++ b/queue.c
@@ -1604,15 +1604,6 @@
{
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();