MCPcopy Create free account
hub / github.com/FreeRTOS/FreeRTOS-Kernel / vTaskCoreAffinitySet

Function vTaskCoreAffinitySet

tasks.c:2224–2250  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

2222 #if ( configUSE_CORE_AFFINITY == 1 )
2223
2224 void vTaskCoreAffinitySet( const TaskHandle_t xTask,
2225 UBaseType_t uxCoreAffinityMask )
2226 {
2227 TCB_t * pxTCB;
2228 BaseType_t xCoreID;
2229
2230 taskENTER_CRITICAL();
2231 {
2232 pxTCB = prvGetTCBFromHandle( xTask );
2233
2234 pxTCB->uxCoreAffinityMask = uxCoreAffinityMask;
2235
2236 if( xSchedulerRunning != pdFALSE )
2237 {
2238 if( taskTASK_IS_RUNNING( pxTCB->xTaskRunState ) )
2239 {
2240 xCoreID = ( BaseType_t ) pxTCB->xTaskRunState;
2241
2242 if( ( uxCoreAffinityMask & ( 1 << xCoreID ) ) == 0 )
2243 {
2244 prvYieldCore( xCoreID );
2245 }
2246 }
2247 }
2248 }
2249 taskEXIT_CRITICAL();
2250 }
2251
2252 #endif /* configUSE_CORE_AFFINITY */
2253#endif /* if ( configNUM_CORES > 1 ) */

Callers

nothing calls this directly

Calls 1

prvYieldCoreFunction · 0.85

Tested by

no test coverage detected