]> git.sur5r.net Git - freertos/blobdiff - FreeRTOS/Source/queue.c
Kernel changes:
[freertos] / FreeRTOS / Source / queue.c
index b74b4efa132ca8448eb07c839f6ecebbe4b82e18..0404b881af403a48f7d419d8af0a87454a189df6 100644 (file)
@@ -797,8 +797,6 @@ Queue_t * const pxQueue = ( Queue_t * ) xQueue;
                        prvUnlockQueue( pxQueue );\r
                        ( void ) xTaskResumeAll();\r
 \r
-                       /* Return to the original privilege level before exiting the\r
-                       function. */\r
                        traceQUEUE_SEND_FAILED( pxQueue );\r
                        return errQUEUE_FULL;\r
                }\r
@@ -1385,7 +1383,7 @@ Queue_t * const pxQueue = ( Queue_t * ) xQueue;
                taskENTER_CRITICAL();\r
                {\r
                        /* Is there data in the queue now?  To be running the calling task\r
-                       must be the highest priority task wanting to access the queue. */\r
+                       must be the highest priority task wanting to access the queue. */\r
                        if( pxQueue->uxMessagesWaiting > ( UBaseType_t ) 0 )\r
                        {\r
                                /* Remember the read position in case the queue is only being\r
@@ -1541,8 +1539,16 @@ Queue_t * const pxQueue = ( Queue_t * ) xQueue;
                {\r
                        prvUnlockQueue( pxQueue );\r
                        ( void ) xTaskResumeAll();\r
-                       traceQUEUE_RECEIVE_FAILED( pxQueue );\r
-                       return errQUEUE_EMPTY;\r
+\r
+                       if( prvIsQueueEmpty( pxQueue ) != pdFALSE )\r
+                       {\r
+                               traceQUEUE_RECEIVE_FAILED( pxQueue );\r
+                               return errQUEUE_EMPTY;\r
+                       }\r
+                       else\r
+                       {\r
+                               mtCOVERAGE_TEST_MARKER();\r
+                       }\r
                }\r
        }\r
 }\r