Fix POSIX port to respect configUSE_TIME_SLICING (#1103)
Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
diff --git a/portable/ThirdParty/GCC/Posix/port.c b/portable/ThirdParty/GCC/Posix/port.c
index 0b18da4..94e80cc 100644
--- a/portable/ThirdParty/GCC/Posix/port.c
+++ b/portable/ThirdParty/GCC/Posix/port.c
@@ -264,7 +264,7 @@
#else /* Linux PTHREAD library*/
hSigSetupThread = PTHREAD_ONCE_INIT;
#endif /* __APPLE__*/
-
+
/* Restore original signal mask. */
( void ) pthread_sigmask( SIG_SETMASK, &xSchedulerOriginalSignalMask, NULL );
@@ -382,7 +382,7 @@
static void * prvTimerTickHandler( void * arg )
{
( void ) arg;
-
+
prvPortSetCurrentThreadName("Scheduler timer");
while( xTimerTickThreadShouldRun )
@@ -420,36 +420,19 @@
( void ) sig;
-/* uint64_t xExpectedTicks; */
-
uxCriticalNesting++; /* Signals are blocked in this signal handler. */
- #if ( configUSE_PREEMPTION == 1 )
- pxThreadToSuspend = prvGetThreadFromTask( xTaskGetCurrentTaskHandle() );
- #endif
+ pxThreadToSuspend = prvGetThreadFromTask( xTaskGetCurrentTaskHandle() );
- /* Tick Increment, accounting for any lost signals or drift in
- * the timer. */
-
-/*
- * Comment code to adjust timing according to full demo requirements
- * xExpectedTicks = (prvGetTimeNs() - prvStartTimeNs)
- * / (portTICK_RATE_MICROSECONDS * 1000);
- * do { */
- xTaskIncrementTick();
-
-/* prvTickCount++;
- * } while (prvTickCount < xExpectedTicks);
- */
-
- #if ( configUSE_PREEMPTION == 1 )
+ if( xTaskIncrementTick() != pdFALSE )
+ {
/* Select Next Task. */
vTaskSwitchContext();
pxThreadToResume = prvGetThreadFromTask( xTaskGetCurrentTaskHandle() );
prvSwitchThread( pxThreadToResume, pxThreadToSuspend );
- #endif
+ }
uxCriticalNesting--;
}