This is the mail archive of the
pthreads-win32@sources.redhat.com
mailing list for the pthreas-win32 project.
Re: Cancellation points
I've changed pthread_mutex_lock() in CVS to use a non-cancelable
version of sem_wait(). I may not be able to build or test it myself
for a day or so. Can someone grab the current CVS version, build the
library, run the test suite, and report success or failure to the
list please.
Otherwise I'll test it myself ASAP.
Thanks.
Ross
Ross Johnson wrote:
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