Generally when a task gets suspended (SUSPEND state) due to some
reason (say double-memory-free, accessing-null-pointer), the PC
(program counter) points to 'tasksuspend'. But, in my system I've seen
that a particular task when gets suspended (this happens very rarely),
its PC points to sigreturn(). I don't know how can this happen. As I
mentioned earlier this task gets suspended very rarely - may be once/
twice when the system is up for more than 2 weeks or so - but when it
does its PC points to sigreturn(). 'tt' (tasktrace) of the task also
does not give any information. So, I'm clueless as to whats going on.

VxWorks experts please help. In what scenarios can a task get
suspended in 'sigreturn'? One additional info about this task is that,
under this task some periodic timers will be created/deleted (using
vxworks timer library - timer_create, timer_connect etc..)