infinite sleep after rtems_task_wake_after()

Juergen Zeller juergen.zeller at argovision.de
Mon Mar 7 16:15:26 UTC 2005


I have a special problem with rtems 4.0.0 on a custom i386ex based 
board. One task invokes rtems_task_wake_after (10) and after some time 
this task stays in DELAYED state and doesn't get CPU Time anymore. I 
found out that in the threads Watchdog_Control data the delta_interval 
seems to be overflowed. My question  to the specialists:

In watchdog.c -> _Watchdog_Tickle() I read the following code:
...
the_watchdog->delta_interval--;
if ( the_watchdog->delta_interval != 0 )
  return;
...
 
How can we guarantee that the_watchdog->delta_interval is NOT zero at 
function entry? I think this is a good place for an overflow, but I 
can't believe that this is a bug. Please help me understand. Does 
anybody have another idea, where and how this overflow could happen?



More information about the users mailing list