You are viewing a plain text version of this content. The canonical link for it is here.
Posted to c-commits@axis.apache.org by na...@apache.org on 2010/05/31 05:43:54 UTC

svn commit: r949662 - in /axis/axis2/c/core/trunk/util/src/platforms: os400/thread_os400.c unix/thread_unix.c

Author: nadiramra
Date: Mon May 31 03:43:54 2010
New Revision: 949662

URL: http://svn.apache.org/viewvc?rev=949662&view=rev
Log:
AXIS2C-1473 some leaks in thread_unix.c and thread_pool.c

Modified:
    axis/axis2/c/core/trunk/util/src/platforms/os400/thread_os400.c
    axis/axis2/c/core/trunk/util/src/platforms/unix/thread_unix.c

Modified: axis/axis2/c/core/trunk/util/src/platforms/os400/thread_os400.c
URL: http://svn.apache.org/viewvc/axis/axis2/c/core/trunk/util/src/platforms/os400/thread_os400.c?rev=949662&r1=949661&r2=949662&view=diff
==============================================================================
--- axis/axis2/c/core/trunk/util/src/platforms/os400/thread_os400.c (original)
+++ axis/axis2/c/core/trunk/util/src/platforms/os400/thread_os400.c Mon May 31 03:43:54 2010
@@ -28,11 +28,9 @@ axutil_threadattr_create(
 
     new = AXIS2_MALLOC(allocator, sizeof(axutil_threadattr_t));
     if (!new)
-    {
         return NULL;
-    }
-    stat = pthread_attr_init(&(new->attr));
 
+    stat = pthread_attr_init(&(new->attr));
     if (stat != 0)
     {
         AXIS2_FREE(allocator, new);
@@ -107,12 +105,12 @@ axutil_thread_create(
     new = (axutil_thread_t *) AXIS2_MALLOC(allocator, sizeof(axutil_thread_t));
 
     if (!new)
-    {
         return NULL;
-    }
+
     new->td = (pthread_t *) AXIS2_MALLOC(allocator, sizeof(pthread_t));
     if (!new->td)
     {
+        AXIS2_FREE(allocator, new);
         return NULL;
     }
 
@@ -121,18 +119,15 @@ axutil_thread_create(
     new->try_exit = AXIS2_FALSE;
 
     if (attr)
-    {
         temp = &(attr->attr);
-    }
-    else
-    {
-        temp = NULL;
-    }
 
     if ((stat = pthread_create(new->td, temp, dummy_worker, new)) == 0)
     {
         return new;
     }
+
+    AXIS2_FREE(allocator, new->td);
+    AXIS2_FREE(allocator, new);
     return NULL;
 }
 

Modified: axis/axis2/c/core/trunk/util/src/platforms/unix/thread_unix.c
URL: http://svn.apache.org/viewvc/axis/axis2/c/core/trunk/util/src/platforms/unix/thread_unix.c?rev=949662&r1=949661&r2=949662&view=diff
==============================================================================
--- axis/axis2/c/core/trunk/util/src/platforms/unix/thread_unix.c (original)
+++ axis/axis2/c/core/trunk/util/src/platforms/unix/thread_unix.c Mon May 31 03:43:54 2010
@@ -27,9 +27,8 @@ axutil_threadattr_create(
 
     new = AXIS2_MALLOC(allocator, sizeof(axutil_threadattr_t));
     if(!new)
-    {
         return NULL;
-    }
+
     stat = pthread_attr_init(&(new->attr));
 
     if(stat != 0)
@@ -104,14 +103,13 @@ axutil_thread_create(
     axutil_thread_t *new = NULL;
 
     new = (axutil_thread_t *)AXIS2_MALLOC(allocator, sizeof(axutil_thread_t));
-
     if(!new)
-    {
         return NULL;
-    }
+
     new->td = (pthread_t *)AXIS2_MALLOC(allocator, sizeof(pthread_t));
     if(!new->td)
     {
+        AXIS2_FREE(allocator, new);
         return NULL;
     }
 
@@ -120,18 +118,15 @@ axutil_thread_create(
     new->try_exit = AXIS2_FALSE;
 
     if(attr)
-    {
         temp = &(attr->attr);
-    }
-    else
-    {
-        temp = NULL;
-    }
 
     if((stat = pthread_create(new->td, temp, dummy_worker, new)) == 0)
     {
         return new;
     }
+
+    AXIS2_FREE(allocator, new->td);
+    AXIS2_FREE(allocator, new);
     return NULL;
 }
 
@@ -296,7 +291,7 @@ axutil_thread_once_init(
     axutil_thread_once_t *control = AXIS2_MALLOC(allocator, sizeof(axutil_thread_once_t));
     if(!control)
     {
-        return NULL;;
+        return NULL;
     }
     (control)->once = once_init;
     return control;