int SES_Schedule(struct sess *sp) { struct sesspool *pp; pp = ses_getpool(sp); AZ(sp->wrk); AN(pp->pool); if (Pool_Schedule(pp->pool, sp)) { VSC_C_main->client_drop_late++; sp->t_idle = VTIM_real(); if (sp->req->vcl != NULL) { /* * A session parked on a busy object can come here * after it wakes up. Loose the VCL reference. */ VCL_Rel(&sp->req->vcl); } SES_Delete(sp, "dropped", sp->t_idle); return (1); } return (0); }
int SES_Schedule(struct sess *sp) { struct sessmem *sm; struct sesspool *pp; CHECK_OBJ_NOTNULL(sp, SESS_MAGIC); AZ(sp->wrk); sm = sp->mem; CHECK_OBJ_NOTNULL(sm, SESSMEM_MAGIC); pp = sm->pool; CHECK_OBJ_NOTNULL(pp, SESSPOOL_MAGIC); AN(pp->pool); if (Pool_Schedule(pp->pool, sp)) { SES_Delete(sp, "dropped"); return (1); } return (0); }