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