Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

vxWorks task suspend

824 views
Skip to first unread message

abhijit lahiri

unread,
Jun 3, 2000, 3:00:00 AM6/3/00
to

Hi,
I am working on vxWorks.
I am providing system support functions in a project.Henci i am
need of answers to the below queries.
I would be happy and greatful for your reply.

---------------------------
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.


Stephen Walsh

unread,
Jun 5, 2000, 3:00:00 AM6/5/00
to

abhijit lahiri wrote in message <8hfulc$9e...@overload.lbl.gov>...

>
>Hi,
> I am working on vxWorks.
> I am providing system support functions in a project.Henci i am
>need of answers to the below queries.
> I would be happy and greatful for your reply.
>
>---------------------------
>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.


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
*******************************************

john_...@my-deja.com

unread,
Jun 7, 2000, 3:00:00 AM6/7/00
to
Hi,

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.

Sohacki, Timothy [NCRTP:3M24:EXCH]

unread,
Jun 13, 2000, 3:00:00 AM6/13/00
to
abhijit lahiri wrote:

[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]

0 new messages