VCL programs, but in practice it didn't happen because we fired the
GC function VCL_Idle() after 5 seconds of silence on the CLI port and
the manager pings every three (by default).
Instead change the name of VCL_Idle() to VCL_Poll() and call it
before every CLI command, so that any query command will get an
up to date status.
git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@2908
d4fa192b-c00b-0410-8231-
f00ffab90ce4
void VCL_Refresh(struct VCL_conf **vcc);
void VCL_Rel(struct VCL_conf **vcc);
void VCL_Get(struct VCL_conf **vcc);
-void VCL_Idle(void);
+void VCL_Poll(void);
#define VCL_RET_MAC(l,u,b,n)
#define VCL_MET_MAC(l,u,b) void VCL_##l##_method(struct sess *);
cli = priv;
VSL(SLT_CLI, 0, "Rd %s", p);
+ VCL_Poll();
vsb_clear(cli->sb);
LOCK(&cli_mtx);
cli_dispatch(cli, ccf_master_cli, p);
while (1) {
pfd[0].fd = heritage.cli_in;
pfd[0].events = POLLIN;
- i = poll(pfd, 1, 5000);
- if (i == 0) {
- VCL_Idle();
- continue;
- }
+ i = poll(pfd, 1, INFTIM);
+ assert(i == 1);
if (pfd[0].revents & POLLHUP) {
fprintf(stderr,
"EOF on CLI connection, exiting\n");
vc->busy--;
/*
* We do not garbage collect discarded VCL's here, that happens
- * in VCL_Idle() which is called from the CLI thread.
+ * in VCL_Poll() which is called from the CLI thread.
*/
UNLOCK(&vcl_mtx);
}
/*--------------------------------------------------------------------*/
void
-VCL_Idle(void)
+VCL_Poll(void)
{
struct vcls *vcl, *vcl2;