mirror of
				https://github.com/FreeRTOS/FreeRTOS-Kernel.git
				synced 2025-11-03 18:22:45 -05:00 
			
		
		
		
	Fix POSIX port to respect configUSE_TIME_SLICING
Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
This commit is contained in:
		
							parent
							
								
									0452603a94
								
							
						
					
					
						commit
						5ac4c340f8
					
				
					 1 changed files with 6 additions and 23 deletions
				
			
		
							
								
								
									
										29
									
								
								portable/ThirdParty/GCC/Posix/port.c
									
										
									
									
										vendored
									
									
								
							
							
						
						
									
										29
									
								
								portable/ThirdParty/GCC/Posix/port.c
									
										
									
									
										vendored
									
									
								
							| 
						 | 
				
			
			@ -264,7 +264,7 @@ BaseType_t xPortStartScheduler( void )
 | 
			
		|||
    #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 uint64_t prvGetTimeNs( void )
 | 
			
		|||
static void * prvTimerTickHandler( void * arg )
 | 
			
		||||
{
 | 
			
		||||
    ( void ) arg;
 | 
			
		||||
    
 | 
			
		||||
 | 
			
		||||
    prvPortSetCurrentThreadName("Scheduler timer");
 | 
			
		||||
 | 
			
		||||
    while( xTimerTickThreadShouldRun )
 | 
			
		||||
| 
						 | 
				
			
			@ -420,36 +420,19 @@ static void vPortSystemTickHandler( int sig )
 | 
			
		|||
 | 
			
		||||
    ( 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--;
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue