Author: manjula Date: Mon Oct 15 21:22:30 2007 New Revision: 585030 URL: http://svn.apache.org/viewvc?rev=585030&view=rev Log: Adding ref count to op_ctx.
Modified: webservices/axis2/trunk/c/src/core/context/op_ctx.c 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?rev=585030&r1=585029&r2=585030&view=diff ============================================================================== --- webservices/axis2/trunk/c/src/core/context/op_ctx.c (original) +++ webservices/axis2/trunk/c/src/core/context/op_ctx.c Mon Oct 15 21:22:30 2007 @@ -60,6 +60,8 @@ axutil_thread_mutex_t *mutex; axis2_bool_t response_written; axis2_bool_t is_in_use; + + int ref; }; AXIS2_EXTERN axis2_op_ctx_t *AXIS2_CALL @@ -92,7 +94,7 @@ op_ctx->response_written = AXIS2_FALSE; op_ctx->mutex = axutil_thread_mutex_create(env->allocator, AXIS2_THREAD_MUTEX_DEFAULT); - + if (!op_ctx->mutex) { axis2_op_ctx_free(op_ctx, env); @@ -124,6 +126,7 @@ } axis2_op_ctx_set_parent(op_ctx, env, svc_ctx); + op_ctx->ref = 1; return op_ctx; } @@ -144,6 +147,11 @@ int i = 0; AXIS2_ENV_CHECK(env, void); + if (--(op_ctx->ref) > 0) + { + return; + } + if (op_ctx->base) { axis2_ctx_free(op_ctx->base, env); @@ -413,3 +421,15 @@ return AXIS2_SUCCESS; } + + +AXIS2_EXTERN axis2_status_t AXIS2_CALL +axis2_op_ctx_increment_ref( + axis2_op_ctx_t * op_ctx, + const axutil_env_t * env) +{ + AXIS2_ENV_CHECK(env, AXIS2_FAILURE); + op_ctx->ref++; + return AXIS2_SUCCESS; +} + --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]