This is the mail archive of the
pthreads-win32@sourceware.cygnus.com
mailing list for the pthreas-win32 project.
Re: Asynchronous cancel
- To: Rajiv K Shukla <rshukla@vin.bellcore.com>
- Subject: Re: Asynchronous cancel
- From: Ross Johnson <rpj@ise.canberra.edu.au>
- Date: Thu, 12 Aug 1999 21:29:12 +1000 (EST)
- cc: pthreads-win32@sourceware.cygnus.com
On Tue, 10 Aug 1999, Rajiv K Shukla wrote:
> Hello All,
>
> Sorry if the question has been asked before. We're trying to see if we
> could use the pthreads-win32 package to port our code to NT. It's been
> fine so far but we have hit a snag. It seems that
> pthread_setcanceltype doesn't really do anything. It sets an integer
> variable cancelType (which is part of the pthread_t structure) but the
> flag is used no where. Looks like the only way to cancel a thread is
> to call pthread_cancel and within the cancelled thread call
> pthread_testcancel. But we'd like to be able to cancel a thread
> asynchronously, e.g one of our thread sleeps for a configurable amount
> of time and it could be set pretty high, 1 hour, or 10 hours, or
> whatever. If within the thread I need to call pthread_testcancel in
> order to be cancelled then it's a problem. We'd have to wait that much
> time before we're even able to call pthread_testcancel.
>
> I'd appreciate any suggestion that you may have.
>
At present there is no way in general to asynchronously cancel a
thread. The best device on offer in the package is the
pthreadCancelableWait() and pthreadCancelableTimedWait() functions
(both non-POSIX and non-portable). See the code and comments in
misc.c. They respond to pthread_cancel().
Cheers.
Ross
+----------------------+---+
| Ross Johnson | | E-Mail: rpj@ise.canberra.edu.au
| Info Sciences and Eng|___|
| University of Canberra | FAX: +61 6 2015227
| PO Box 1 |
| Belconnen ACT 2616 | WWW: http://willow.canberra.edu.au/~rpj/
| AUSTRALIA |
+--------------------------+