Commit 393762be authored by Poul-Henning Kamp's avatar Poul-Henning Kamp

Add VFP_Extend() to pair with VFP_GetStorage() for general sanity

parent b98d1b05
......@@ -670,7 +670,7 @@ double BAN_Time(const struct ban *ban);
/* cache_busyobj.c */
struct busyobj *VBO_GetBusyObj(struct worker *, const struct req *);
void VBO_DerefBusyObj(struct worker *wrk, struct busyobj **busyobj);
void VBO_extend(struct busyobj *, ssize_t);
void VBO_extend(struct objcore *, struct busyobj *, ssize_t);
ssize_t VBO_waitlen(struct worker *, struct objcore *, struct busyobj *,
ssize_t l);
void VBO_setstate(struct busyobj *bo, enum busyobj_state_e next);
......
......@@ -221,16 +221,16 @@ VBO_DerefBusyObj(struct worker *wrk, struct busyobj **pbo)
}
void
VBO_extend(struct busyobj *bo, ssize_t l)
VBO_extend(struct objcore *oc, struct busyobj *bo, ssize_t l)
{
CHECK_OBJ_NOTNULL(oc, OBJCORE_MAGIC);
CHECK_OBJ_NOTNULL(bo, BUSYOBJ_MAGIC);
CHECK_OBJ_NOTNULL(bo->vfc, VFP_CTX_MAGIC);
if (l == 0)
return;
assert(l > 0);
Lck_Lock(&bo->mtx);
ObjExtend(bo->wrk, bo->vfc->oc, l);
ObjExtend(bo->wrk, oc, l);
AZ(pthread_cond_broadcast(&bo->cond));
Lck_Unlock(&bo->mtx);
}
......
......@@ -96,7 +96,7 @@ vfp_vep_callback(struct vfp_ctx *vc, void *priv, ssize_t l, enum vgz_flag flg)
i = VGZ_Gzip(vef->vgz, &dp, &dl, flg);
VGZ_UpdateObj(vc, vef->vgz, VUA_UPDATE);
vef->tot += dl;
VBO_extend(vc->bo, dl);
VFP_Extend(vc, dl);
} while (i != VGZ_ERROR &&
(!VGZ_IbufEmpty(vef->vgz) || VGZ_ObufFull(vef->vgz)));
assert(i == VGZ_ERROR || VGZ_IbufEmpty(vef->vgz));
......
......@@ -511,7 +511,7 @@ vbf_fetch_body_helper(struct busyobj *bo)
vfps = VFP_Suck(vfc, ptr, &l);
if (l > 0 && vfps != VFP_ERROR) {
bo->acct.beresp_bodybytes += l;
VBO_extend(bo, l);
VFP_Extend(vfc, l);
if (est >= l)
est -= l;
else
......@@ -711,7 +711,7 @@ vbf_objiterator(void *priv, int flush, const void *ptr, ssize_t len)
if (len < l)
l = len;
memcpy(pd, ps, l);
VBO_extend(bo, l);
VFP_Extend(bo->vfc, l);
ps += l;
len -= l;
}
......@@ -851,7 +851,7 @@ vbf_stp_error(struct worker *wrk, struct busyobj *bo)
if (VFP_GetStorage(bo->vfc, &l, &ptr) != VFP_OK)
break;
memcpy(ptr, VSB_data(synth_body) + o, l);
VBO_extend(bo, l);
VFP_Extend(bo->vfc, l);
ll -= l;
o += l;
}
......
......@@ -72,7 +72,6 @@ VFP_GetStorage(struct vfp_ctx *vc, ssize_t *sz, uint8_t **ptr)
{
ssize_t l;
CHECK_OBJ_NOTNULL(vc, VFP_CTX_MAGIC);
AN(sz);
assert(*sz >= 0);
......@@ -94,6 +93,14 @@ VFP_GetStorage(struct vfp_ctx *vc, ssize_t *sz, uint8_t **ptr)
return (VFP_OK);
}
void
VFP_Extend(const struct vfp_ctx *vc, ssize_t sz)
{
CHECK_OBJ_NOTNULL(vc, VFP_CTX_MAGIC);
VBO_extend(vc->oc, vc->bo, sz);
}
/**********************************************************************
*/
......
......@@ -84,6 +84,7 @@ enum vfp_status VFP_Error(struct vfp_ctx *, const char *fmt, ...)
/* cache_fetch_proc.c */
enum vfp_status VFP_GetStorage(struct vfp_ctx *, ssize_t *sz, uint8_t **ptr);
void VFP_Extend(const struct vfp_ctx *, ssize_t sz);
/* Deliver processors ------------------------------------------------*/
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment