Author: rjung Date: Sun Jan 13 15:19:28 2008 New Revision: 611672 URL: http://svn.apache.org/viewvc?rev=611672&view=rev Log: Add push/pull for new ajp shm worker.
Modified: tomcat/connectors/trunk/jk/native/common/jk_ajp_common.c tomcat/connectors/trunk/jk/native/common/jk_ajp_common.h tomcat/connectors/trunk/jk/native/common/jk_lb_worker.c Modified: tomcat/connectors/trunk/jk/native/common/jk_ajp_common.c URL: http://svn.apache.org/viewvc/tomcat/connectors/trunk/jk/native/common/jk_ajp_common.c?rev=611672&r1=611671&r2=611672&view=diff ============================================================================== --- tomcat/connectors/trunk/jk/native/common/jk_ajp_common.c (original) +++ tomcat/connectors/trunk/jk/native/common/jk_ajp_common.c Sun Jan 13 15:19:28 2008 @@ -942,6 +942,50 @@ return rc; } +/* Syncing config values from shm */ +void jk_ajp_pull(ajp_worker_t * aw, jk_logger_t *l) +{ + JK_TRACE_ENTER(l); + + if (JK_IS_DEBUG_LEVEL(l)) + jk_log(l, JK_LOG_DEBUG, + "syncing mem for ajp worker '%s' from shm", + aw->name); + + aw->cache_timeout = aw->s->cache_timeout; + aw->connect_timeout = aw->s->connect_timeout; + aw->reply_timeout = aw->s->reply_timeout; + aw->prepost_timeout = aw->s->prepost_timeout; + aw->recovery_opts = aw->s->recovery_opts; + aw->retries = aw->s->retries; + aw->max_packet_size = aw->s->max_packet_size; + aw->sequence = aw->s->h.sequence; + + JK_TRACE_EXIT(l); +} + +/* Syncing config values to shm */ +void jk_ajp_push(ajp_worker_t * aw, jk_logger_t *l) +{ + JK_TRACE_ENTER(l); + + if (JK_IS_DEBUG_LEVEL(l)) + jk_log(l, JK_LOG_DEBUG, + "syncing shm for ajp worker '%s' from mem", + aw->name); + + aw->s->cache_timeout = aw->cache_timeout; + aw->s->connect_timeout = aw->connect_timeout; + aw->s->reply_timeout = aw->reply_timeout; + aw->s->prepost_timeout = aw->prepost_timeout; + aw->s->recovery_opts = aw->recovery_opts; + aw->s->retries = aw->retries; + aw->s->max_packet_size = aw->max_packet_size; + aw->s->h.sequence = aw->sequence; + + JK_TRACE_EXIT(l); +} + /** Send a message to an endpoint, using corresponding PROTO HEADER * @param ae endpoint * @param msg message to send @@ -2041,6 +2085,11 @@ p = e->endpoint_private; aw = p->worker; + + jk_shm_lock(); + if (aw->sequence != aw->s->h.sequence) + jk_ajp_pull(aw, l); + jk_shm_unlock(); aw->s->used++; Modified: tomcat/connectors/trunk/jk/native/common/jk_ajp_common.h URL: http://svn.apache.org/viewvc/tomcat/connectors/trunk/jk/native/common/jk_ajp_common.h?rev=611672&r1=611671&r2=611672&view=diff ============================================================================== --- tomcat/connectors/trunk/jk/native/common/jk_ajp_common.h (original) +++ tomcat/connectors/trunk/jk/native/common/jk_ajp_common.h Sun Jan 13 15:19:28 2008 @@ -403,6 +403,10 @@ void ajp_close_endpoint(ajp_endpoint_t * ae, jk_logger_t *l); +void jk_ajp_pull(ajp_worker_t * aw, jk_logger_t *l); + +void jk_ajp_push(ajp_worker_t * aw, jk_logger_t *l); + int ajp_connection_tcp_send_message(ajp_endpoint_t * ae, jk_msg_buf_t *msg, jk_logger_t *l); Modified: tomcat/connectors/trunk/jk/native/common/jk_lb_worker.c URL: http://svn.apache.org/viewvc/tomcat/connectors/trunk/jk/native/common/jk_lb_worker.c?rev=611672&r1=611671&r2=611672&view=diff ============================================================================== --- tomcat/connectors/trunk/jk/native/common/jk_lb_worker.c (original) +++ tomcat/connectors/trunk/jk/native/common/jk_lb_worker.c Sun Jan 13 15:19:28 2008 @@ -287,10 +287,15 @@ for (i = 0; i < p->num_of_workers; i++) { lb_sub_worker_t *w = &p->lb_workers[i]; if (w->sequence != w->s->h.sequence) { + jk_worker_t *jw = w->worker; + ajp_worker_t *aw = (ajp_worker_t *)jw->worker_private; + if (JK_IS_DEBUG_LEVEL(l)) jk_log(l, JK_LOG_DEBUG, "syncing mem for member '%s' of lb '%s' from shm", w->name, p->name); + + jk_ajp_pull(aw, l); strncpy(w->route, w->s->route, JK_SHM_STR_SIZ); strncpy(w->domain, w->s->domain, JK_SHM_STR_SIZ); strncpy(w->redirect, w->s->redirect, JK_SHM_STR_SIZ); @@ -329,10 +334,15 @@ for (i = 0; i < p->num_of_workers; i++) { lb_sub_worker_t *w = &p->lb_workers[i]; if (w->sequence != w->s->h.sequence) { + jk_worker_t *jw = w->worker; + ajp_worker_t *aw = (ajp_worker_t *)jw->worker_private; + if (JK_IS_DEBUG_LEVEL(l)) jk_log(l, JK_LOG_DEBUG, "syncing shm for member '%s' of lb '%s' from mem", w->name, p->name); + + jk_ajp_push(aw, l); strncpy(w->s->route, w->route, JK_SHM_STR_SIZ); strncpy(w->s->domain, w->domain, JK_SHM_STR_SIZ); strncpy(w->s->redirect, w->redirect, JK_SHM_STR_SIZ); --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]