You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by sa...@apache.org on 2007/04/25 06:30:54 UTC

svn commit: r532191 - in /webservices/axis2/trunk/c: include/axis2_op_ctx.h src/core/context/op_ctx.c src/core/transport/http/common/http_worker.c src/core/transport/http/server/apache2/apache2_worker.c

Author: samisa
Date: Tue Apr 24 21:30:53 2007
New Revision: 532191

URL: http://svn.apache.org/viewvc?view=rev&rev=532191
Log:
Fixed the handle count increase problem. AXIS2C-584

Modified:
    webservices/axis2/trunk/c/include/axis2_op_ctx.h
    webservices/axis2/trunk/c/src/core/context/op_ctx.c
    webservices/axis2/trunk/c/src/core/transport/http/common/http_worker.c
    webservices/axis2/trunk/c/src/core/transport/http/server/apache2/apache2_worker.c

Modified: webservices/axis2/trunk/c/include/axis2_op_ctx.h
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/include/axis2_op_ctx.h?view=diff&rev=532191&r1=532190&r2=532191
==============================================================================
--- webservices/axis2/trunk/c/include/axis2_op_ctx.h (original)
+++ webservices/axis2/trunk/c/include/axis2_op_ctx.h Tue Apr 24 21:30:53 2007
@@ -229,6 +229,12 @@
     axis2_op_ctx_get_response_written(const axis2_op_ctx_t *op_ctx,
         const axutil_env_t *env);
 
+    AXIS2_EXTERN void AXIS2_CALL
+    axis2_op_ctx_destroy_mutex(
+        struct axis2_op_ctx *op_ctx,
+        const axutil_env_t *env);
+
+
 #ifdef __cplusplus
 }
 #endif

Modified: webservices/axis2/trunk/c/src/core/context/op_ctx.c
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/src/core/context/op_ctx.c?view=diff&rev=532191&r1=532190&r2=532191
==============================================================================
--- webservices/axis2/trunk/c/src/core/context/op_ctx.c (original)
+++ webservices/axis2/trunk/c/src/core/context/op_ctx.c Tue Apr 24 21:30:53 2007
@@ -155,6 +155,18 @@
     return;
 }
 
+AXIS2_EXTERN void AXIS2_CALL
+axis2_op_ctx_destroy_mutex(
+    struct axis2_op_ctx *op_ctx,
+    const axutil_env_t *env)
+{
+
+    if (op_ctx->mutex)
+    {
+        axutil_thread_mutex_destroy(op_ctx->mutex);
+    }
+}
+
 AXIS2_EXTERN axis2_status_t AXIS2_CALL
 axis2_op_ctx_init(
     struct axis2_op_ctx *op_ctx,

Modified: webservices/axis2/trunk/c/src/core/transport/http/common/http_worker.c
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/src/core/transport/http/common/http_worker.c?view=diff&rev=532191&r1=532190&r2=532191
==============================================================================
--- webservices/axis2/trunk/c/src/core/transport/http/common/http_worker.c (original)
+++ webservices/axis2/trunk/c/src/core/transport/http/common/http_worker.c Tue Apr 24 21:30:53 2007
@@ -393,8 +393,10 @@
     {
         axis2_msg_ctx_t *out_msg_ctx = NULL, *in_msg_ctx = NULL;
         axis2_msg_ctx_t **msg_ctx_map = NULL;
-
+        
         msg_ctx_map =  axis2_op_ctx_get_msg_ctx_map(op_ctx, env);
+
+        axis2_op_ctx_destroy_mutex(op_ctx, env);
 
         out_msg_ctx = msg_ctx_map[AXIS2_WSDL_MESSAGE_LABEL_OUT];
         in_msg_ctx = msg_ctx_map[AXIS2_WSDL_MESSAGE_LABEL_IN];

Modified: webservices/axis2/trunk/c/src/core/transport/http/server/apache2/apache2_worker.c
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/src/core/transport/http/server/apache2/apache2_worker.c?view=diff&rev=532191&r1=532190&r2=532191
==============================================================================
--- webservices/axis2/trunk/c/src/core/transport/http/server/apache2/apache2_worker.c (original)
+++ webservices/axis2/trunk/c/src/core/transport/http/server/apache2/apache2_worker.c Tue Apr 24 21:30:53 2007
@@ -108,6 +108,7 @@
     axis2_char_t *content_type = NULL;
     axis2_http_out_transport_info_t *apache2_out_transport_info = NULL;
     axis2_char_t *ctx_uuid = NULL;
+    axis2_op_ctx_t *op_ctx = NULL;
 
     AXIS2_ENV_CHECK(env, AXIS2_CRITICAL_FAILURE);
     AXIS2_PARAM_CHECK(env->error, request, AXIS2_CRITICAL_FAILURE);
@@ -240,9 +241,11 @@
             send_status =  HTTP_INTERNAL_SERVER_ERROR;
         }
     }
+    
+    op_ctx = axis2_msg_ctx_get_op_ctx(msg_ctx, env);
+    
     if (-1 == send_status)
     {
-        axis2_op_ctx_t *op_ctx =  axis2_msg_ctx_get_op_ctx(msg_ctx, env);
         if (axis2_op_ctx_get_response_written(op_ctx, env))
         {
             send_status = OK;
@@ -259,6 +262,10 @@
         }
     }
     
+    if (op_ctx)
+    {
+        axis2_op_ctx_destroy_mutex(op_ctx, env);
+    }
     if (body_string)
     {
         ap_rwrite(body_string, body_string_len, request);



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