/*\r
- FreeRTOS.org V4.1.3 - Copyright (C) 2003-2006 Richard Barry.\r
+ FreeRTOS.org V4.2.0 - Copyright (C) 2003-2007 Richard Barry.\r
\r
This file is part of the FreeRTOS.org distribution.\r
\r
\r
+ BUG FIX: Removed the call to prvIsQueueEmpty from within xQueueCRReceive\r
as it exited with interrupts enabled. Thanks Paul Katz.\r
+\r
+Changes from V4.1.3:\r
+\r
+ + Modified xQueueSend() and xQueueReceive() to handle the (very unlikely) \r
+ case whereby a task unblocking due to a temporal event can remove/send an \r
+ item from/to a queue when a higher priority task is still blocked on the \r
+ queue. This modification is a result of the SafeRTOS testing.\r
*/\r
\r
#include <stdlib.h>\r
\r
signed portBASE_TYPE xQueueSend( xQueueHandle pxQueue, const void *pvItemToQueue, portTickType xTicksToWait )\r
{\r
-signed portBASE_TYPE xReturn = pdFAIL;\r
+signed portBASE_TYPE xReturn = pdPASS;\r
xTimeOutType xTimeOut;\r
\r
/* Make sure other tasks do not access the queue. */\r
\r
signed portBASE_TYPE xQueueReceive( xQueueHandle pxQueue, void *pvBuffer, portTickType xTicksToWait )\r
{\r
-signed portBASE_TYPE xReturn = pdFAIL;\r
+signed portBASE_TYPE xReturn = pdTRUE;\r
xTimeOutType xTimeOut;\r
\r
/* This function is very similar to xQueueSend(). See comments within\r