static void send_enter_request (ctx_t *ctx, barrier_t *b) { json_object *o = util_json_object_new_object (); util_json_object_add_string (o, "name", b->name); util_json_object_add_int (o, "count", b->count); util_json_object_add_int (o, "nprocs", b->nprocs); util_json_object_add_int (o, "hopcount", 1); flux_request_send (ctx->h, o, "xbarrier.enter"); json_object_put (o); }
static void send_enter_request (ctx_t *ctx, barrier_t *b) { json_object *o = util_json_object_new_object (); util_json_object_add_string (o, "name", b->name); util_json_object_add_int (o, "count", b->count); util_json_object_add_int (o, "nprocs", b->nprocs); util_json_object_add_int (o, "hopcount", 1); if (flux_json_request (ctx->h, FLUX_NODEID_UPSTREAM, FLUX_MATCHTAG_NONE, "barrier.enter", o) < 0) flux_log (ctx->h, LOG_ERR, "%s: flux_json_request: %s", __FUNCTION__, strerror (errno)); json_object_put (o); }
static int exit_event_send (flux_t h, const char *name, int errnum) { json_object *o = util_json_object_new_object (); int rc; util_json_object_add_string (o, "name", name); util_json_object_add_int (o, "errnum", errnum); rc = flux_event_send (h, o, "xbarrier.exit"); json_object_put (o); return rc; }
void util_json_object_add_tstat (json_object *o, const char *name, tstat_t *ts, double scale) { json_object *to = util_json_object_new_object (); util_json_object_add_int (to, "count", tstat_count (ts)); util_json_object_add_double (to, "min", tstat_min (ts)*scale); util_json_object_add_double (to, "mean", tstat_mean (ts)*scale); util_json_object_add_double (to, "stddev", tstat_stddev (ts)*scale); util_json_object_add_double (to, "max", tstat_max (ts)*scale); json_object_object_add (o, name, to); }