示例#1
0
int getrusage_json (int who, json_object **op)
{
    struct rusage ru;
    json_object *o;

    if (getrusage (who, &ru) < 0)
        return -1;
    o = Jnew ();
    Jadd_double (o, "utime",
            (double)ru.ru_utime.tv_sec + 1E-6 * ru.ru_utime.tv_usec);
    Jadd_double (o, "stime",
            (double)ru.ru_stime.tv_sec + 1E-6 * ru.ru_stime.tv_usec);
    Jadd_int64 (o, "maxrss",        ru.ru_maxrss);
    Jadd_int64 (o, "ixrss",         ru.ru_ixrss);
    Jadd_int64 (o, "idrss",         ru.ru_idrss);
    Jadd_int64 (o, "isrss",         ru.ru_isrss);
    Jadd_int64 (o, "minflt",        ru.ru_minflt);
    Jadd_int64 (o, "majflt",        ru.ru_majflt);
    Jadd_int64 (o, "nswap",         ru.ru_nswap);
    Jadd_int64 (o, "inblock",       ru.ru_inblock);
    Jadd_int64 (o, "oublock",       ru.ru_oublock);
    Jadd_int64 (o, "msgsnd",        ru.ru_msgsnd);
    Jadd_int64 (o, "msgrcv",        ru.ru_msgrcv);
    Jadd_int64 (o, "nsignals",      ru.ru_nsignals);
    Jadd_int64 (o, "nvcsw",         ru.ru_nvcsw);
    Jadd_int64 (o, "nivcsw",        ru.ru_nivcsw);
    *op = o;
    return 0;
}
示例#2
0
文件: treq.c 项目: trws/flux-core
void test_sink (flux_t *h, uint32_t nodeid)
{
    flux_future_t *f;
    json_object *in = Jnew();

    Jadd_double (in, "pi", 3.14);
    if (!(f = flux_rpc (h, "req.sink", Jtostr (in), nodeid, 0))
             || flux_future_get (f, NULL) < 0)
        log_err_exit ("%s", __FUNCTION__);
    Jput (in);
    flux_future_destroy (f);
}
示例#3
0
flux_msg_t *shutdown_vencode (double grace, int exitcode, int rank,
                              const char *fmt, va_list ap)
{
    flux_msg_t *msg;
    JSON out = Jnew ();
    char reason[REASON_MAX];

    vsnprintf (reason, sizeof (reason), fmt, ap);

    Jadd_str (out, "reason", reason);
    Jadd_double (out, "grace", grace);
    Jadd_int (out, "rank", rank);
    Jadd_int (out, "exitcode", exitcode);
    msg = flux_event_encode ("shutdown", Jtostr (out));
    Jput (out);
    return msg;
}