Commit 849fcd3b authored by Poul-Henning Kamp's avatar Poul-Henning Kamp

Add argument to tell which vsm_cluster a VSC goes into.

parent 630b0455
......@@ -342,7 +342,8 @@ vbe_dir_event(const struct director *d, enum vcl_event_e ev)
if (ev == VCL_EVENT_WARM) {
AZ(bp->vsc);
bp->vsc =
VSC_vbe_New(&bp->vsc_seg, bp->director->display_name);
VSC_vbe_New(NULL, &bp->vsc_seg,
bp->director->display_name);
AN(bp->vsc);
}
......
......@@ -247,7 +247,7 @@ Lck_Delete(struct lock *lck)
struct VSC_lck *
Lck_CreateClass(struct vsc_seg **sg, const char *name)
{
return(VSC_lck_New(sg, name));
return(VSC_lck_New(NULL, sg, name));
}
void
......
......@@ -239,7 +239,7 @@ MPL_New(const char *name,
VTAILQ_INIT(&mpl->surplus);
Lck_New(&mpl->mtx, lck_mempool);
/* XXX: prealloc min_pool */
mpl->vsc = VSC_mempool_New(&mpl->vsc_seg, mpl->name + 4);
mpl->vsc = VSC_mempool_New(NULL, &mpl->vsc_seg, mpl->name + 4);
AN(mpl->vsc);
AZ(pthread_create(&mpl->thread, NULL, mpl_guard, mpl));
AZ(pthread_detach(mpl->thread));
......
......@@ -505,7 +505,7 @@ VSM_Init(void)
vsc_lock = vsm_vsc_lock;
vsc_unlock = vsm_vsc_unlock;
VSC_C_main = VSC_main_New(NULL, "");
VSC_C_main = VSC_main_New(NULL, NULL, "");
AN(VSC_C_main);
AN(heritage.proc_vsmw);
......
......@@ -106,13 +106,15 @@ vrt_vsc_mksegf(const char *class, size_t payload, const char *fmt, ...)
}
void *
VRT_VSC_Alloc(struct vsc_seg **sg, const char *nm, size_t sd,
VRT_VSC_Alloc(struct vsm_cluster *vc, struct vsc_seg **sg,
const char *nm, size_t sd,
const unsigned char *jp, size_t sj, const char *fmt, va_list va)
{
struct vsc_seg *vsg, *dvsg;
char buf[1024];
uintptr_t jjp;
AZ(vc);
if (vsc_lock != NULL)
vsc_lock();
......
......@@ -49,6 +49,7 @@
#include "common/common_param.h"
struct vsc_seg;
struct vsm_cluster;
#include "VSC_mgt.h"
struct cli;
......
......@@ -808,7 +808,7 @@ main(int argc, char * const *argv)
mgt_SHM_Init();
mgt_SHM_static_alloc(i_arg, strlen(i_arg) + 1L, "Arg", "-i");
VSC_C_mgt = VSC_mgt_New(NULL, "");
VSC_C_mgt = VSC_mgt_New(NULL, NULL, "");
if (M_arg != NULL)
mgt_cli_master(M_arg);
......
......@@ -413,7 +413,7 @@ smf_open(struct stevedore *st)
if (lck_smf == NULL)
lck_smf = Lck_CreateClass(NULL, "smf");
CAST_OBJ_NOTNULL(sc, st->priv, SMF_SC_MAGIC);
sc->stats = VSC_smf_New(NULL, st->ident);
sc->stats = VSC_smf_New(NULL, NULL, st->ident);
Lck_New(&sc->mtx, lck_smf);
Lck_Lock(&sc->mtx);
smf_open_chunk(sc, sc->filesize, 0, &fail, &sum);
......
......@@ -213,7 +213,7 @@ sma_open(struct stevedore *st)
lck_sma = Lck_CreateClass(NULL, "sma");
CAST_OBJ_NOTNULL(sma_sc, st->priv, SMA_SC_MAGIC);
Lck_New(&sma_sc->sma_mtx, lck_sma);
sma_sc->stats = VSC_sma_New(NULL, st->ident);
sma_sc->stats = VSC_sma_New(NULL, NULL, st->ident);
if (sma_sc->sma_max != SIZE_MAX)
sma_sc->stats->g_space = sma_sc->sma_max;
}
......
......@@ -113,6 +113,7 @@ struct vmod_priv;
struct vrt_acl;
struct vsb;
struct vsc_seg;
struct vsm_cluster;
struct vsl_log;
struct ws;
......@@ -444,7 +445,7 @@ VCL_STRING VRT_STRANDS_string(VCL_STRANDS);
VCL_STRING VRT_TIME_string(VRT_CTX, VCL_TIME);
#ifdef va_start // XXX: hackish
void *VRT_VSC_Alloc(struct vsc_seg **, const char *, size_t,
const unsigned char *, size_t, const char *, va_list);
void *VRT_VSC_Alloc(struct vsm_cluster *, struct vsc_seg **,
const char *, size_t, const unsigned char *, size_t, const char *, va_list);
void VRT_VSC_Destroy(const char *, struct vsc_seg *);
#endif
......@@ -144,7 +144,8 @@ class vscset(object):
fo.write("\n")
fo.write(self.struct + " *VSC_" + self.name + "_New")
fo.write("(struct vsc_seg **, const char *fmt, ...);\n")
fo.write("(struct vsm_cluster *,\n")
fo.write(" struct vsc_seg **, const char *fmt, ...);\n")
fo.write("void VSC_" + self.name + "_Destroy")
fo.write("(struct vsc_seg **);\n")
......@@ -186,14 +187,15 @@ class vscset(object):
fo.write("\n")
fo.write(self.struct + "*\n")
fo.write("VSC_" + self.name + "_New")
fo.write("(struct vsc_seg **sg, const char *fmt, ...)\n")
fo.write("(struct vsm_cluster *vc,\n")
fo.write(" struct vsc_seg **sg, const char *fmt, ...)\n")
fo.write("{\n")
fo.write("\tva_list ap;\n")
fo.write("\t" + self.struct + " *retval;\n")
fo.write("\n")
fo.write("\tva_start(ap, fmt);\n")
fo.write("\tretval = VRT_VSC_Alloc")
fo.write("(sg, vsc_" + self.name + "_name, ")
fo.write("(vc, sg, vsc_" + self.name + "_name, ")
fo.write("sizeof(" + self.struct + "),\n\t ")
fo.write("vsc_" + self.name + "_json, ")
fo.write("sizeof vsc_" + self.name + "_json, fmt, ap);\n")
......
......@@ -585,7 +585,7 @@ xyzzy_vsc_new(VRT_CTX)
(void)ctx;
AZ(pthread_mutex_lock(&vsc_mtx));
if (vsc == NULL)
vsc = VSC_debug_New(&vsc_seg, "");
vsc = VSC_debug_New(NULL, &vsc_seg, "");
AN(vsc);
AZ(pthread_mutex_unlock(&vsc_mtx));
}
......
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