Add some assertion points to timers.c.
diff --git a/Source/timers.c b/Source/timers.c
index 88959ed..5b29f55 100644
--- a/Source/timers.c
+++ b/Source/timers.c
@@ -149,7 +149,7 @@
  * timer list does not contain any timers then return 0 and set *pxListWasEmpty

  * to pdTRUE.

  */

-static portTickType prvLookForExpiredTimer( portBASE_TYPE *pxListWasEmpty ) PRIVILEGED_FUNCTION;

+static portTickType prvGetNextExpireTime( portBASE_TYPE *pxListWasEmpty ) PRIVILEGED_FUNCTION;

 

 /*

  * If a timer has expired, process it.  Otherwise, block the timer service task

@@ -251,6 +251,7 @@
 static void prvProcessExpiredTimer( portTickType xNextExpireTime, portTickType xTimeNow )

 {

 xTIMER *pxTimer;

+portBASE_TYPE xResult;

 

 	/* Remove the timer from the list of active timers.  A check has already

 	been performed to ensure the list is not empty. */

@@ -271,7 +272,9 @@
 		{

 			/* The timer expired before it was added to the active timer

 			list.  Reload it now.  */

-			xTimerGenericCommand( pxTimer, tmrCOMMAND_START, xNextExpireTime, NULL, tmrNO_DELAY );

+			xResult = xTimerGenericCommand( pxTimer, tmrCOMMAND_START, xNextExpireTime, NULL, tmrNO_DELAY );

+			configASSERT( xResult );

+			( void ) xResult;

 		}

 	}

 

@@ -292,7 +295,7 @@
 	{

 		/* Query the timers list to see if it contains any timers, and if so,

 		obtain the time at which the next timer will expire. */

-		xNextExpireTime = prvLookForExpiredTimer( &xListWasEmpty );

+		xNextExpireTime = prvGetNextExpireTime( &xListWasEmpty );

 

 		/* If a timer has expired, process it.  Otherwise, block this task

 		until either a timer does expire, or a command is received. */

@@ -322,6 +325,7 @@
 			/* The tick count has not overflowed, has the timer expired? */

 			if( ( xListWasEmpty == pdFALSE ) && ( xNextExpireTime <= xTimeNow ) )

 			{

+				xTaskResumeAll();

 				prvProcessExpiredTimer( xNextExpireTime, xTimeNow );

 			}

 			else

@@ -333,21 +337,26 @@
 				be reached unless xNextExpireTime > xTimeNow, except in the

 				case when the current timer list is empty. */

 				vQueueWaitForMessageRestricted( xTimerQueue, ( xNextExpireTime - xTimeNow ) );

+

+				if( xTaskResumeAll() == pdFALSE )

+				{

+					/* Yield to wait for either a command to arrive, or the block time

+					to expire.  If a command arrived between the critical section being

+					exited and this yield then the yield will not cause the task

+					to block. */

+					portYIELD_WITHIN_API();

+				}

 			}

 		}

-	}

-	if( xTaskResumeAll() == pdFALSE )

-	{

-		/* Yield to wait for either a command to arrive, or the block time

-		to expire.  If a command arrived between the critical section being

-		exited and this yield then the yield will not cause the task

-		to block. */

-		portYIELD_WITHIN_API();

+		else

+		{

+			xTaskResumeAll();

+		}

 	}

 }

 /*-----------------------------------------------------------*/

 

-static portTickType prvLookForExpiredTimer( portBASE_TYPE *pxListWasEmpty )

+static portTickType prvGetNextExpireTime( portBASE_TYPE *pxListWasEmpty )

 {

 portTickType xNextExpireTime;

 

@@ -441,7 +450,7 @@
 {

 xTIMER_MESSAGE xMessage;

 xTIMER *pxTimer;

-portBASE_TYPE xTimerListsWereSwitched;

+portBASE_TYPE xTimerListsWereSwitched, xResult;

 portTickType xTimeNow;

 

 	/* In this case the xTimerListsWereSwitched parameter is not used, but it

@@ -476,7 +485,9 @@
 

 					if( pxTimer->uxAutoReload == pdTRUE )

 					{

-						xTimerGenericCommand( pxTimer, tmrCOMMAND_START, xMessage.xMessageValue + pxTimer->xTimerPeriodInTicks, NULL, tmrNO_DELAY );

+						xResult = xTimerGenericCommand( pxTimer, tmrCOMMAND_START, xMessage.xMessageValue + pxTimer->xTimerPeriodInTicks, NULL, tmrNO_DELAY );

+						configASSERT( xResult );

+						( void ) xResult;

 					}

 				}

 				break;

@@ -511,6 +522,7 @@
 portTickType xNextExpireTime;

 xList *pxTemp;

 xTIMER *pxTimer;

+portBASE_TYPE xResult;

 

 	/* Remove compiler warnings if configASSERT() is not defined. */

 	( void ) xLastTime;

@@ -534,7 +546,9 @@
 		pxTimer->pxCallbackFunction( ( xTimerHandle ) pxTimer );

 		if( pxTimer->uxAutoReload == pdTRUE )

 		{

-			xTimerGenericCommand( pxTimer, tmrCOMMAND_START, xNextExpireTime, NULL, tmrNO_DELAY );

+			xResult = xTimerGenericCommand( pxTimer, tmrCOMMAND_START, xNextExpireTime, NULL, tmrNO_DELAY );

+			configASSERT( xResult );

+			( void ) xResult;

 		}

 	}