Cancellation points
Ross Johnson
rpj@ise.canberra.edu.au
Mon Dec 16 23:24:00 GMT 2002
Hi Simon,
Sleep() [with uppercase 'S'] is definitely not a cancelation point -
only functions included with pthreads-win32 can be cancelation
points. The POSIX function sleep() isn't provided by pthreads-win32
either.
See the Conformance section of the ANNOUNCE file for all functions
that have been implemented. Any of those that should be cancelation
points are.
Re pthread_mutex_lock(), Thomas Pfaff discovered this bug only a few
days ago and tracked it down (to an error of mine). I will fix it
and drop it into CVS ASAP.
Thanks.
Ross
Simon Gerblich wrote:
> Hi,
>
> I'm having some problems working out which functions are cancellation points
> when using
> pthread_cancel() with pthread_setcanceltype(PTHREAD_CANCEL_DEFERRED, NULL).
> I'm using pthreadsVC.dll on Windows 2000.
>
> Is Sleep() meant to be a cancellation point in WIN32? I've read in the
> Solaris reference
> manual that sleep() and usleep() are cancellation points for pthreads on
> Solaris, but can
> not find a list of cancellation points for pthreads on WIN32.
>
> Also pthread_mutex_lock() is acting as a cancellation point in my code. I
> have to put
> pthread_setcancelstate(PTHREAD_CANCEL_DISABLE, NULL) before my
> calls to pthread_mutex_lock to stop it acting as a cancellation point. If
> the thread
> cancellation occurs in a call to pthread_mutex_lock(), the mutex that was
> being locked
> returns EBUSY when destroyed with pthread_mutex_destroy(). Has anyone else
> seen this happen?
>
> Thanks for any help,
> Simon Gerblich
More information about the Pthreads-win32
mailing list