Some optimisations added.

This commit is contained in:
Richard Barry 2009-03-11 10:55:41 +00:00
parent aaeb4790de
commit 55c96044b0

View File

@ -1014,9 +1014,9 @@ void vTaskEndScheduler( void )
void vTaskSuspendAll( void ) void vTaskSuspendAll( void )
{ {
portENTER_CRITICAL(); /* A critical section is not required as the variable is of type
++uxSchedulerSuspended; portBASE_TYPE. */
portEXIT_CRITICAL(); ++uxSchedulerSuspended;
} }
/*----------------------------------------------------------*/ /*----------------------------------------------------------*/
@ -1119,13 +1119,9 @@ portTickType xTicks;
unsigned portBASE_TYPE uxTaskGetNumberOfTasks( void ) unsigned portBASE_TYPE uxTaskGetNumberOfTasks( void )
{ {
unsigned portBASE_TYPE uxNumberOfTasks; /* A critical section is not required because the variables are of type
portBASE_TYPE. */
taskENTER_CRITICAL(); return uxCurrentNumberOfTasks;
uxNumberOfTasks = uxCurrentNumberOfTasks;
taskEXIT_CRITICAL();
return uxNumberOfTasks;
} }
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -1351,7 +1347,8 @@ void vTaskIncrementTick( void )
xTCB = ( tskTCB * ) xTask; xTCB = ( tskTCB * ) xTask;
} }
/* Save the hook function in the TCB. */ /* Save the hook function in the TCB. A critical section is required as
the value can be accessed from an interrupt. */
portENTER_CRITICAL(); portENTER_CRITICAL();
xTCB->pxTaskTag = pxTagValue; xTCB->pxTaskTag = pxTagValue;
portEXIT_CRITICAL(); portEXIT_CRITICAL();
@ -1899,15 +1896,10 @@ tskTCB *pxNewTCB;
xTaskHandle xTaskGetCurrentTaskHandle( void ) xTaskHandle xTaskGetCurrentTaskHandle( void )
{ {
xTaskHandle xReturn; /* A critical section is not required as this is not called from
an interrupt and the current TCB will always be the same for any
portENTER_CRITICAL(); individual execution thread. */
{ return pxCurrentTCB;
xReturn = ( xTaskHandle ) pxCurrentTCB;
}
portEXIT_CRITICAL();
return xReturn;
} }
#endif #endif