This is the mail archive of the cygwin-cvs@cygwin.com mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[newlib-cygwin] Remove unnecessary locking in pthread_setcancelstate/pthread_setcanceltype


https://sourceware.org/git/gitweb.cgi?p=newlib-cygwin.git;h=6c3a5d263f3cdfb6703434439bdc84c3a1e29159

commit 6c3a5d263f3cdfb6703434439bdc84c3a1e29159
Author: Corinna Vinschen <corinna@vinschen.de>
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 <corinna@vinschen.de>

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  <corinna@vinschen.de>
 
+	* thread.cc (pthread::setcancelstate): Remove unnecessary locking.
+	(pthread::setcanceltype): Ditto.
+
+2015-12-08  Corinna Vinschen  <corinna@vinschen.de>
+
 	* 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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]