Fix context switch when time slicing is off (#568)

* Fix context switch when time slicing is off

When time slicing is off, context switch should only happen when a
task with priority higher than the currently executing one is unblocked.
Earlier the code was invoking a context switch even when a task with
priority equal the currently executing task was unblocked. This commit
fixes the code to only do a context switch when a higher priority
task is unblocked.

Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
diff --git a/tasks.c b/tasks.c
index c7192e5..f09c95d 100644
--- a/tasks.c
+++ b/tasks.c
@@ -2812,10 +2812,14 @@
                     #if ( configUSE_PREEMPTION == 1 )

                     {

                         /* Preemption is on, but a context switch should

-                         * only be performed if the unblocked task has a

-                         * priority that is equal to or higher than the

-                         * currently executing task. */

-                        if( pxTCB->uxPriority >= pxCurrentTCB->uxPriority )

+                         * only be performed if the unblocked task's

+                         * priority is higher than the currently executing

+                         * task.

+                         * The case of equal priority tasks sharing

+                         * processing time (which happens when both

+                         * preemption and time slicing are on) is

+                         * handled below.*/

+                        if( pxTCB->uxPriority > pxCurrentTCB->uxPriority )

                         {

                             xSwitchRequired = pdTRUE;

                         }