Author: mturk Date: Wed Nov 23 15:57:01 2011 New Revision: 1205463 URL: http://svn.apache.org/viewvc?rev=1205463&view=rev Log: Use unmanaged pools for sockets. This will allow detached sockets but will require that each socket is closed
Modified: tomcat/native/trunk/native/src/network.c Modified: tomcat/native/trunk/native/src/network.c URL: http://svn.apache.org/viewvc/tomcat/native/trunk/native/src/network.c?rev=1205463&r1=1205462&r2=1205463&view=diff ============================================================================== --- tomcat/native/trunk/native/src/network.c (original) +++ tomcat/native/trunk/native/src/network.c Wed Nov 23 15:57:01 2011 @@ -180,11 +180,15 @@ TCN_IMPLEMENT_CALL(jlong, Socket, create apr_int32_t f, t; UNREFERENCED(o); - TCN_ASSERT(pool != 0); GET_S_FAMILY(f, family); GET_S_TYPE(t, type); - TCN_THROW_IF_ERR(apr_pool_create(&c, p), c); + if (p == NULL) { + TCN_THROW_IF_ERR(apr_pool_create_unmanaged(&c), c); + } + else { + TCN_THROW_IF_ERR(apr_pool_create(&c, p), c); + } a = (tcn_socket_t *)apr_pcalloc(c, sizeof(tcn_socket_t)); TCN_CHECK_ALLOCATED(a); @@ -222,11 +226,6 @@ TCN_IMPLEMENT_CALL(void, Socket, destroy UNREFERENCED_STDARGS; TCN_ASSERT(sock != 0); - if (!tcn_global_pool) { - /* Socket will be destroyed by the cleanup - */ - return; - } as = s->sock; s->sock = NULL; apr_pool_cleanup_kill(s->pool, s, sp_socket_cleanup); @@ -387,7 +386,7 @@ TCN_IMPLEMENT_CALL(jlong, Socket, accept UNREFERENCED(o); TCN_ASSERT(sock != 0); - TCN_THROW_IF_ERR(apr_pool_create(&p, s->child), p); + TCN_THROW_IF_ERR(apr_pool_create_unmanaged(&p), p); if (s->net->type == TCN_SOCKET_APR) { TCN_ASSERT(s->sock != NULL); a = (tcn_socket_t *)apr_pcalloc(p, sizeof(tcn_socket_t)); @@ -413,8 +412,7 @@ TCN_IMPLEMENT_CALL(jlong, Socket, accept } return P2J(a); cleanup: - if (tcn_global_pool && p && s->sock) - apr_pool_destroy(p); + apr_pool_destroy(p); return 0; } --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org