mirror of
https://github.com/FreeRTOS/FreeRTOS-Kernel.git
synced 2025-09-12 17:17:44 -04:00
Posix: Free Idle task resources after ending the scheduler
In case of using Posix simulator and ending the scheduler, it does not free the resources allocated by the idle task. This causes the memory checkers (Valgrind, Address Sanitizers, ..) to complain.
This commit is contained in:
parent
d428209d01
commit
e9a2d2701e
1 changed files with 6 additions and 0 deletions
6
portable/ThirdParty/GCC/Posix/port.c
vendored
6
portable/ThirdParty/GCC/Posix/port.c
vendored
|
@ -178,6 +178,7 @@ portBASE_TYPE xPortStartScheduler( void )
|
||||||
{
|
{
|
||||||
int iSignal;
|
int iSignal;
|
||||||
sigset_t xSignals;
|
sigset_t xSignals;
|
||||||
|
TaskHandle_t pxIdleThread;
|
||||||
|
|
||||||
hMainThread = pthread_self();
|
hMainThread = pthread_self();
|
||||||
|
|
||||||
|
@ -185,6 +186,8 @@ sigset_t xSignals;
|
||||||
Interrupts are disabled here already. */
|
Interrupts are disabled here already. */
|
||||||
prvSetupTimerInterrupt();
|
prvSetupTimerInterrupt();
|
||||||
|
|
||||||
|
pxIdleThread = xTaskGetIdleTaskHandle();
|
||||||
|
|
||||||
/* Start the first task. */
|
/* Start the first task. */
|
||||||
vPortStartFirstTask();
|
vPortStartFirstTask();
|
||||||
|
|
||||||
|
@ -197,6 +200,9 @@ sigset_t xSignals;
|
||||||
sigwait( &xSignals, &iSignal );
|
sigwait( &xSignals, &iSignal );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Cancel the Idle task and free its resources */
|
||||||
|
vPortCancelThread(pxIdleThread);
|
||||||
|
|
||||||
/* Restore original signal mask. */
|
/* Restore original signal mask. */
|
||||||
(void)pthread_sigmask( SIG_SETMASK, &xSchedulerOriginalSignalMask, NULL );
|
(void)pthread_sigmask( SIG_SETMASK, &xSchedulerOriginalSignalMask, NULL );
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue