Skip to content

Commit d844312

Browse files
authored
Fix POSIX port to respect configUSE_TIME_SLICING (#1103)
Signed-off-by: Gaurav Aggarwal <[email protected]>
1 parent 5588ae6 commit d844312

File tree

1 file changed

+6
-23
lines changed
  • portable/ThirdParty/GCC/Posix

1 file changed

+6
-23
lines changed

portable/ThirdParty/GCC/Posix/port.c

+6-23
Original file line numberDiff line numberDiff line change
@@ -264,7 +264,7 @@ BaseType_t xPortStartScheduler( void )
264264
#else /* Linux PTHREAD library*/
265265
hSigSetupThread = PTHREAD_ONCE_INIT;
266266
#endif /* __APPLE__*/
267-
267+
268268
/* Restore original signal mask. */
269269
( void ) pthread_sigmask( SIG_SETMASK, &xSchedulerOriginalSignalMask, NULL );
270270

@@ -382,7 +382,7 @@ static uint64_t prvGetTimeNs( void )
382382
static void * prvTimerTickHandler( void * arg )
383383
{
384384
( void ) arg;
385-
385+
386386
prvPortSetCurrentThreadName("Scheduler timer");
387387

388388
while( xTimerTickThreadShouldRun )
@@ -420,36 +420,19 @@ static void vPortSystemTickHandler( int sig )
420420

421421
( void ) sig;
422422

423-
/* uint64_t xExpectedTicks; */
424-
425423
uxCriticalNesting++; /* Signals are blocked in this signal handler. */
426424

427-
#if ( configUSE_PREEMPTION == 1 )
428-
pxThreadToSuspend = prvGetThreadFromTask( xTaskGetCurrentTaskHandle() );
429-
#endif
430-
431-
/* Tick Increment, accounting for any lost signals or drift in
432-
* the timer. */
425+
pxThreadToSuspend = prvGetThreadFromTask( xTaskGetCurrentTaskHandle() );
433426

434-
/*
435-
* Comment code to adjust timing according to full demo requirements
436-
* xExpectedTicks = (prvGetTimeNs() - prvStartTimeNs)
437-
* / (portTICK_RATE_MICROSECONDS * 1000);
438-
* do { */
439-
xTaskIncrementTick();
440-
441-
/* prvTickCount++;
442-
* } while (prvTickCount < xExpectedTicks);
443-
*/
444-
445-
#if ( configUSE_PREEMPTION == 1 )
427+
if( xTaskIncrementTick() != pdFALSE )
428+
{
446429
/* Select Next Task. */
447430
vTaskSwitchContext();
448431

449432
pxThreadToResume = prvGetThreadFromTask( xTaskGetCurrentTaskHandle() );
450433

451434
prvSwitchThread( pxThreadToResume, pxThreadToSuspend );
452-
#endif
435+
}
453436

454437
uxCriticalNesting--;
455438
}

0 commit comments

Comments
 (0)