---------------------------
1.In vxWorks can a task be suspended other than the two conditions
presented below::
a).It causes Exception.
b).vxWorks taskSuspend( ) system call is executed.
------------------------------
2.In vxWorks can a task get deleted other than the three conditions
presented below:
a).It exits the main routine of taskSpawn.
b).Some task executes either
taskDelete(),td(),taskDeleteForce().
c).Task itself executes vxWorks exit() system call
--------------------------------
3.Regarding exception hook routine::
a).
I found that the exception hook routine is executed in the context
of the task that caused exception.After the exception hook routine is
over the task is Suspended.
Then what is the role of vxWorks exception task( excTask) in
this regard?
b).How will be the message queue associated with vxWorks exceptipon
task be used by it?
------------------------------------
I would be very happy to receive your valuable comments on above.
==========================================================
Thanks and Regards,
S.K.K.Reddy.
I believe the debugger when running also suspends the task that it is
attached to do its debugging. This can cause all sorts of fun if there is a
watchdog timer set up to resume the task. This has the same result as a
continue.
Not sure about the rest of you questions.
Hope This Helps
Steve
*******************************************
Stephen A Walsh
Senior Software Engineer
BAE Systems
*******************************************
Transfixus Sed Non Mortuus
*******************************************
In article <393bb70d$1...@pull.gecm.com>,
"Stephen Walsh" <stephe...@gecm.com> wrote:
> I believe the debugger when running also suspends the task that it is
> attached to do its debugging. This can cause all sorts of fun if there
is a
> watchdog timer set up to resume the task. This has the same result as
a
> continue.
But you shouldn't be using taskSuspend()/taskResume() for
synchronisation! The suspended state is, with one exception, really an
error state. The exception is that it is also the state of a task before
activation (i.e. if you just call taskInit() and call taskActivate() or
just use taskSpawn()).
There are other reasons too... if your taskResume() call happens before
the taskSuspend() then the result is a NOP and one task will eventually
suspend with nobody to resume it (at least until the next watchdog fires
in your case). A better solution is to pend on a semaphore since the
semGive and semTake can happen in any order and the result will be the
same.
Just some thoughts,
John...
Sent via Deja.com http://www.deja.com/
Before you buy.
[snip]
> ---------------------------
> 1.In vxWorks can a task be suspended other than the two conditions
> presented below::
> a).It causes Exception.
> b).vxWorks taskSuspend( ) system call is executed.
c.) invalid memory operations, if the region is set up to suspend
on those errors (e.g., freeing memory that is not allocated)
d.) "tt" calls taskSuspend() while getting the stack traceback
[snip]