Beispiel #1
0
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);
}
Beispiel #2
0
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;
}
Beispiel #3
0
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);
}
Beispiel #4
0
static int wait_for_lwj_watch_init (flux_t h, int64_t id)
{
    int rc;
    json_object *rpc_o;
    json_object *rpc_resp;

    rpc_o = util_json_object_new_object ();
    util_json_object_add_string (rpc_o, "key", "lwj.next-id");
    util_json_object_add_int64 (rpc_o, "val", id);
    rc = flux_json_rpc (h, FLUX_NODEID_ANY, "sim_sched.lwj-watch", rpc_o, &rpc_resp);
    if (rc >= 0) {
        util_json_object_get_int (rpc_resp, "rc", &rc);
        json_object_put (rpc_resp);
    }
    json_object_put (rpc_o);
    return rc;
}