You are viewing a plain text version of this content. The canonical link for it is here.
Posted to axis-cvs@ws.apache.org by ma...@apache.org on 2007/12/18 06:49:53 UTC

svn commit: r605097 - in /webservices/axis2/trunk/c/util: ./ include/ include/platforms/unix/ include/platforms/windows/ src/platforms/unix/ src/platforms/windows/

Author: manjula
Date: Mon Dec 17 21:49:50 2007
New Revision: 605097

URL: http://svn.apache.org/viewvc?rev=605097&view=rev
Log:
Improve thread exit when handling concurrent multiple requests.

Modified:
    webservices/axis2/trunk/c/util/configure.ac
    webservices/axis2/trunk/c/util/include/axutil_thread.h
    webservices/axis2/trunk/c/util/include/platforms/unix/axutil_thread_unix.h
    webservices/axis2/trunk/c/util/include/platforms/windows/axutil_thread_windows.h
    webservices/axis2/trunk/c/util/src/platforms/unix/thread_unix.c
    webservices/axis2/trunk/c/util/src/platforms/windows/thread_windows.c

Modified: webservices/axis2/trunk/c/util/configure.ac
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/util/configure.ac?rev=605097&r1=605096&r2=605097&view=diff
==============================================================================
--- webservices/axis2/trunk/c/util/configure.ac (original)
+++ webservices/axis2/trunk/c/util/configure.ac Mon Dec 17 21:49:50 2007
@@ -49,7 +49,7 @@
 #CFLAGS="$CFLAGS -ansi -Wall -D_LARGEFILE64_SOURCE -Wno-implicit-function-declaration"
 CFLAGS="$CFLAGS -D_LARGEFILE64_SOURCE"
 if test "$GCC" = "yes"; then
-    CFLAGS="$CFLAGS -ansi -Wall -Wno-implicit-function-declaration -Werror"
+    CFLAGS="$CFLAGS -ansi -Wall -Werror -Wno-implicit-function-declaration "
 fi
 LDFLAGS="$LDFLAGS -lpthread"
 

Modified: webservices/axis2/trunk/c/util/include/axutil_thread.h
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/util/include/axutil_thread.h?rev=605097&r1=605096&r2=605097&view=diff
==============================================================================
--- webservices/axis2/trunk/c/util/include/axutil_thread.h (original)
+++ webservices/axis2/trunk/c/util/include/axutil_thread.h Mon Dec 17 21:49:50 2007
@@ -172,6 +172,7 @@
     axutil_thread_detach(
         axutil_thread_t * thd);
 
+
     /*************************Thread locking functions*****************************/
 
     /** Opaque thread-local mutex structure */

Modified: webservices/axis2/trunk/c/util/include/platforms/unix/axutil_thread_unix.h
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/util/include/platforms/unix/axutil_thread_unix.h?rev=605097&r1=605096&r2=605097&view=diff
==============================================================================
--- webservices/axis2/trunk/c/util/include/platforms/unix/axutil_thread_unix.h (original)
+++ webservices/axis2/trunk/c/util/include/platforms/unix/axutil_thread_unix.h Mon Dec 17 21:49:50 2007
@@ -31,6 +31,7 @@
     pthread_t *td;
     void *data;
     axutil_thread_start_t func;
+    axis2_bool_t try_exit;
 };
 
 struct axutil_threadattr_t

Modified: webservices/axis2/trunk/c/util/include/platforms/windows/axutil_thread_windows.h
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/util/include/platforms/windows/axutil_thread_windows.h?rev=605097&r1=605096&r2=605097&view=diff
==============================================================================
--- webservices/axis2/trunk/c/util/include/platforms/windows/axutil_thread_windows.h (original)
+++ webservices/axis2/trunk/c/util/include/platforms/windows/axutil_thread_windows.h Mon Dec 17 21:49:50 2007
@@ -34,6 +34,7 @@
     HANDLE *td;
     void *data;
     axutil_thread_start_t func;
+    axis2_bool_t try_exit;
 };
 
 struct axutil_threadattr_t

Modified: webservices/axis2/trunk/c/util/src/platforms/unix/thread_unix.c
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/util/src/platforms/unix/thread_unix.c?rev=605097&r1=605096&r2=605097&view=diff
==============================================================================
--- webservices/axis2/trunk/c/util/src/platforms/unix/thread_unix.c (original)
+++ webservices/axis2/trunk/c/util/src/platforms/unix/thread_unix.c Mon Dec 17 21:49:50 2007
@@ -118,6 +118,7 @@
 
     new->data = data;
     new->func = func;
+    new->try_exit = AXIS2_FALSE;
 
     if (attr)
     {
@@ -155,8 +156,16 @@
     axutil_thread_t * thd,
     axutil_allocator_t * allocator)
 {
+
     if (thd)
     {
+        while (!thd->try_exit)
+        {    
+            sleep(1);
+        }    
+        
+        thd->try_exit = AXIS2_TRUE;
+
         if (thd->td)
         {
             AXIS2_FREE(allocator, thd->td);
@@ -185,6 +194,7 @@
 {
     if (0 == pthread_detach(*(thd->td)))
     {
+        thd->try_exit = AXIS2_TRUE;
         return AXIS2_SUCCESS;
     }
     return AXIS2_FAILURE;
@@ -196,6 +206,7 @@
 {
     return;
 }
+
 
 /**
  * function is used to allocate a new key. This key now becomes valid for all threads in our process. 

Modified: webservices/axis2/trunk/c/util/src/platforms/windows/thread_windows.c
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/util/src/platforms/windows/thread_windows.c?rev=605097&r1=605096&r2=605097&view=diff
==============================================================================
--- webservices/axis2/trunk/c/util/src/platforms/windows/thread_windows.c (original)
+++ webservices/axis2/trunk/c/util/src/platforms/windows/thread_windows.c Mon Dec 17 21:49:50 2007
@@ -109,6 +109,7 @@
     new->data = data;
     new->func = func;
     new->td = NULL;
+    new->try_exit = AXIS2_FALSE;
 
     /* Use 0 for Thread Stack Size, because that will default the stack to the
      * same size as the calling thread. 



---------------------------------------------------------------------
To unsubscribe, e-mail: axis-cvs-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-cvs-help@ws.apache.org