From: phk Date: Thu, 6 Apr 2006 10:00:45 +0000 (+0000) Subject: Add VBE_RecycleFd() function to recycle backend connections X-Git-Url: https://err.no/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=368840004c5f8f284667f2b7d55a9e5aa851fcf3;p=varnish Add VBE_RecycleFd() function to recycle backend connections git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@135 d4fa192b-c00b-0410-8231-f00ffab90ce4 --- diff --git a/varnish-cache/bin/varnishd/cache.h b/varnish-cache/bin/varnishd/cache.h index ed2c2db2..b93e9341 100644 --- a/varnish-cache/bin/varnishd/cache.h +++ b/varnish-cache/bin/varnishd/cache.h @@ -25,6 +25,8 @@ void VBE_Init(void); int VBE_GetFd(struct backend *bp, void **ptr); void VBE_Pass(struct sess *sp); void VBE_ClosedFd(void *ptr); +void VBE_RecycleFd(void *ptr); + /* cache_httpd.c */ void HttpdAnalyze(struct sess *sp, int rr); diff --git a/varnish-cache/bin/varnishd/cache_backend.c b/varnish-cache/bin/varnishd/cache_backend.c index 5bf8e6cf..f3318a20 100644 --- a/varnish-cache/bin/varnishd/cache_backend.c +++ b/varnish-cache/bin/varnishd/cache_backend.c @@ -128,6 +128,8 @@ VBE_GetFd(struct backend *bp, void **ptr) return (vc->fd); } +/*--------------------------------------------------------------------*/ + void VBE_ClosedFd(void *ptr) { @@ -140,6 +142,19 @@ VBE_ClosedFd(void *ptr) free(vc); } +/*--------------------------------------------------------------------*/ + +void +VBE_RecycleFd(void *ptr) +{ + struct vbe_conn *vc; + + vc = ptr; + AZ(pthread_mutex_lock(&vbemtx)); + TAILQ_REMOVE(&vc->vbe->bconn, vc, list); + TAILQ_INSERT_HEAD(&vc->vbe->fconn, vc, list); + AZ(pthread_mutex_unlock(&vbemtx)); +} /*--------------------------------------------------------------------*/