]> git.sur5r.net Git - freertos/blobdiff - FreeRTOS/Demo/Common/Minimal/recmutex.c
Demo tasks:
[freertos] / FreeRTOS / Demo / Common / Minimal / recmutex.c
index f59d360d390f7e5d5174234211b1a951fd4aa5fd..f36e0b9285958eb1bb9e3b253022630c40b4bd72 100644 (file)
@@ -123,7 +123,7 @@ be overridden by a definition in FreeRTOSConfig.h. */
 #define recmuMAX_COUNT                                 ( 10 )\r
 \r
 /* Misc. */\r
-#define recmuSHORT_DELAY                               ( 20 / portTICK_PERIOD_MS )\r
+#define recmuSHORT_DELAY                               ( pdMS_TO_TICKS( 20 ) )\r
 #define recmuNO_DELAY                                  ( ( TickType_t ) 0 )\r
 #define recmuEIGHT_TICK_DELAY                  ( ( TickType_t ) 8 )\r
 \r
@@ -227,6 +227,10 @@ UBaseType_t ux;
                        {\r
                                xErrorOccurred = pdTRUE;\r
                        }\r
+\r
+                       #if( configUSE_PREEMPTION == 0 )\r
+                               taskYIELD();\r
+                       #endif\r
                }\r
 \r
                /* Having given it back the same number of times as it was taken, we\r
@@ -344,7 +348,14 @@ static void prvRecursiveMutexPollingTask( void *pvParameters )
                                error will be latched if the polling task has not returned the\r
                                mutex by the time this fixed period has expired. */\r
                                vTaskResume( xBlockingTaskHandle );\r
-                vTaskResume( xControllingTaskHandle );\r
+                               #if( configUSE_PREEMPTION == 0 )\r
+                                       taskYIELD();\r
+                               #endif\r
+\r
+                               vTaskResume( xControllingTaskHandle );\r
+                               #if( configUSE_PREEMPTION == 0 )\r
+                                       taskYIELD();\r
+                               #endif\r
 \r
                                /* The other two tasks should now have executed and no longer\r
                                be suspended. */\r
@@ -433,7 +444,7 @@ static UBaseType_t uxLastControllingCycles = 0, uxLastBlockingCycles = 0, uxLast
        }\r
        else\r
        {\r
-               xReturn = pdTRUE;\r
+               xReturn = pdPASS;\r
        }\r
 \r
        return xReturn;\r