POPs;
(void)POPs;
static apr_status_t mpxs_cleanup_run(void *data){    int count;    mpxs_cleanup_t *cdata = (mpxs_cleanup_t *)data;    dTHXa(cdata->perl);    dSP;    ENTER;SAVETMPS;    PUSHMARK(SP);    if (cdata->arg) {        XPUSHs(cdata->arg);    }    PUTBACK;    count = call_sv(cdata->cv, G_SCALAR|G_EVAL);    SPAGAIN;    if (count == 1) {        POPs; /* the return value is ignored */    }    PUTBACK;    FREETMPS;LEAVE;    SvREFCNT_dec(cdata->cv);    if (cdata->arg) {        SvREFCNT_dec(cdata->arg);    }#ifdef USE_ITHREADS    if (cdata->interp && modperl_opt_interp_unselect) {        /* this will decrement the interp refcnt until         * there are no more references, in which case         * the interpreter will be putback into the mip         */        (void)modperl_opt_interp_unselect(cdata->interp);    }#endif    if (SvTRUE(ERRSV)) {        Perl_croak(aTHX_ SvPV_nolen(ERRSV));    }        /* the return value is ignored by apr_pool_destroy anyway */    return APR_SUCCESS;}