https://sourceware.org/git/gitweb.cgi?p=newlib-cygwin.git;h=6c3a5d263f3cdfb6703434439bdc84c3a1e29159
commit 6c3a5d263f3cdfb6703434439bdc84c3a1e29159 Author: Corinna Vinschen <[email protected]> Date: Tue Dec 8 17:55:33 2015 +0100 Remove unnecessary locking in pthread_setcancelstate/pthread_setcanceltype * thread.cc (pthread::setcancelstate): Remove unnecessary locking. (pthread::setcanceltype): Ditto. Signed-off-by: Corinna Vinschen <[email protected]> Diff: --- winsup/cygwin/ChangeLog | 5 +++++ winsup/cygwin/thread.cc | 36 ++++++++++-------------------------- 2 files changed, 15 insertions(+), 26 deletions(-) diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog index c585dd9..16282e0 100644 --- a/winsup/cygwin/ChangeLog +++ b/winsup/cygwin/ChangeLog @@ -1,5 +1,10 @@ 2015-12-08 Corinna Vinschen <[email protected]> + * thread.cc (pthread::setcancelstate): Remove unnecessary locking. + (pthread::setcanceltype): Ditto. + +2015-12-08 Corinna Vinschen <[email protected]> + * ntdll.h (FILE_ID_BOTH_DIR_INFORMATION): Rename FileId to IndexNumber to align with Microsoft naming scheme. (FILE_INTERNAL_INFORMATION): Ditto. diff --git a/winsup/cygwin/thread.cc b/winsup/cygwin/thread.cc index ff84590..8f29900 100644 --- a/winsup/cygwin/thread.cc +++ b/winsup/cygwin/thread.cc @@ -966,43 +966,27 @@ pthread::static_cancel_self () int pthread::setcancelstate (int state, int *oldstate) { - int result = 0; - - mutex.lock (); - if (state != PTHREAD_CANCEL_ENABLE && state != PTHREAD_CANCEL_DISABLE) - result = EINVAL; - else - { - if (oldstate) - *oldstate = cancelstate; - cancelstate = state; - } + return EINVAL; - mutex.unlock (); + if (oldstate) + *oldstate = cancelstate; + cancelstate = state; - return result; + return 0; } int pthread::setcanceltype (int type, int *oldtype) { - int result = 0; - - mutex.lock (); - if (type != PTHREAD_CANCEL_DEFERRED && type != PTHREAD_CANCEL_ASYNCHRONOUS) - result = EINVAL; - else - { - if (oldtype) - *oldtype = canceltype; - canceltype = type; - } + return EINVAL; - mutex.unlock (); + if (oldtype) + *oldtype = canceltype; + canceltype = type; - return result; + return 0; } void
