On Tue, 30 Mar 2004 11:38:54 +0200, Jens M Andreasen <[EMAIL PROTECTED]> wrote:

On tis, 2004-03-30 at 08:51, Arve Knudsen wrote:
Hi

Could anyone explain how I should go about killing a potensially
unresponsive thread? Of course there's pthread_cancel, but I don't wish to
wait for the other thread to reach a cancel point. Basically I'm trying to
implement a watchdog for a realtime audio thread. Any suggestions are
welcome, thanks.

man pthread_cancel:


...
...

pthread_setcanceltype  changes  the  type  of responses to cancellation
requests for the calling thread: asynchronous (immediate) or  deferred.

The type argument is the new cancellation type: either

PTHREAD_CANCEL_ASYNCHRONOUS

to cancel the calling thread as soon as the  cancellation  request  is
received, or

PTHREAD_CANCEL_DEFERRED

to keep the cancellation request pending until the next cancellation
point.

I was thinking PTHREAD_CANCEL_ASYNCHRONOUS would be the option, but I already rely on the default behaviour (deferred) for the regular cases, where I politely ask the thread to exit. So I was thinking of some other alternative. The older code I'm using as a reference, makes use of pthread_kill. At first I thought the NPTL lib simply lacked this function (not in pthread.h), but I see now its included through signal.h :p

Thanks

Arve Knudsen

Reply via email to