diff options
-rw-r--r-- | util/src/platforms/os400/thread_os400.c | 17 | ||||
-rw-r--r-- | util/src/platforms/unix/thread_unix.c | 19 |
2 files changed, 13 insertions, 23 deletions
diff --git a/util/src/platforms/os400/thread_os400.c b/util/src/platforms/os400/thread_os400.c index 0269f9e..8f1abf7 100644 --- a/util/src/platforms/os400/thread_os400.c +++ b/util/src/platforms/os400/thread_os400.c @@ -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; } diff --git a/util/src/platforms/unix/thread_unix.c b/util/src/platforms/unix/thread_unix.c index ccedd06..29c5412 100644 --- a/util/src/platforms/unix/thread_unix.c +++ b/util/src/platforms/unix/thread_unix.c @@ -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; |