Author: rfm
Date: Mon Jun 27 22:21:11 2016
New Revision: 39935

URL: http://svn.gna.org/viewcvs/gnustep?rev=39935&view=rev
Log:
windows fixup for pthread exit with null pointer

Modified:
    libs/base/trunk/Source/NSThread.m

Modified: libs/base/trunk/Source/NSThread.m
URL: 
http://svn.gna.org/viewcvs/gnustep/libs/base/trunk/Source/NSThread.m?rev=39935&r1=39934&r2=39935&view=diff
==============================================================================
--- libs/base/trunk/Source/NSThread.m   (original)
+++ libs/base/trunk/Source/NSThread.m   Mon Jun 27 22:21:11 2016
@@ -569,6 +569,17 @@
     {
       NSValue           *ref;
 
+      if (0 == thread)
+       {
+         /* On some systems this is called with a null thread pointer,
+          * so try to ger the NSThread object for the current thread.
+          */
+         thread = pthread_getspecific(thread_object_key);
+         if (0 == thread)
+           {
+             return;   // no thread info
+           }
+       }
       RETAIN((NSThread*)thread);
       ref = NSValueCreateFromPthread(pthread_self());
       _willLateUnregisterThread(ref, (NSThread*)thread);
@@ -810,7 +821,7 @@
   t = GSCurrentThread();
   if (t->_active == YES)
     {
-      unregisterActiveThread (t);
+      unregisterActiveThread(t);
 
       if (t == defaultThread || defaultThread == nil)
        {
@@ -1742,7 +1753,7 @@
  * </p>
  */
 BOOL
-GSRegisterCurrentThread (void)
+GSRegisterCurrentThread(void)
 {
   return [NSThread _createThreadForCurrentPthread];
 }
@@ -1762,7 +1773,7 @@
  * </p>
  */
 void
-GSUnregisterCurrentThread (void)
+GSUnregisterCurrentThread(void)
 {
   unregisterActiveThread(GSCurrentThread());
 }


_______________________________________________
Gnustep-cvs mailing list
Gnustep-cvs@gna.org
https://mail.gna.org/listinfo/gnustep-cvs

Reply via email to