您当前的位置:首页 > IT编程 > C++
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:C++ HYDU_ERR_POP函数代码示例

51自学网 2021-06-01 21:24:51
  C++
这篇教程C++ HYDU_ERR_POP函数代码示例写得很实用,希望能帮到您。

本文整理汇总了C++中HYDU_ERR_POP函数的典型用法代码示例。如果您正苦于以下问题:C++ HYDU_ERR_POP函数的具体用法?C++ HYDU_ERR_POP怎么用?C++ HYDU_ERR_POP使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。

在下文中一共展示了HYDU_ERR_POP函数的29个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。

示例1: fn_name_publish

static HYD_status fn_name_publish(int fd, int pid, int pgid, char *args[]){    struct HYD_string_stash stash;    char *cmd, *thrid, *val, *name = NULL, *port = NULL;    int token_count, success;    struct HYD_pmcd_token *tokens = NULL;    HYD_status status = HYD_SUCCESS;    HYDU_FUNC_ENTER();    status = HYD_pmcd_pmi_args_to_tokens(args, &tokens, &token_count);    HYDU_ERR_POP(status, "unable to convert args to tokens/n");    thrid = HYD_pmcd_pmi_find_token_keyval(tokens, token_count, "thrid");    if ((val = HYD_pmcd_pmi_find_token_keyval(tokens, token_count, "name")) == NULL)        HYDU_ERR_POP(status, "cannot find token: name/n");    name = HYDU_strdup(val);    if ((val = HYD_pmcd_pmi_find_token_keyval(tokens, token_count, "port")) == NULL)        HYDU_ERR_POP(status, "cannot find token: port/n");    port = HYDU_strdup(val);    status = HYD_pmcd_pmi_publish(name, port, &success);    HYDU_ERR_POP(status, "error publishing service/n");    HYD_STRING_STASH_INIT(stash);    HYD_STRING_STASH(stash, HYDU_strdup("cmd=name-publish-response;"), status);    if (thrid) {        HYD_STRING_STASH(stash, HYDU_strdup("thrid="), status);        HYD_STRING_STASH(stash, HYDU_strdup(thrid), status);        HYD_STRING_STASH(stash, HYDU_strdup(";"), status);    }    if (!success) {        HYD_STRING_STASH(stash, HYDU_strdup("rc=1;errmsg=duplicate_service_"), status);        HYD_STRING_STASH(stash, HYDU_strdup(name), status);        HYD_STRING_STASH(stash, HYDU_strdup(";"), status);    }    else        HYD_STRING_STASH(stash, HYDU_strdup("rc=0;"), status);    HYD_STRING_SPIT(stash, cmd, status);    status = cmd_response(fd, pid, cmd);    HYDU_ERR_POP(status, "send command failed/n");    HYDU_FREE(cmd);  fn_exit:    if (tokens)        HYD_pmcd_pmi_free_tokens(tokens, token_count);    if (name)        HYDU_FREE(name);    if (port)        HYDU_FREE(port);    HYDU_FUNC_EXIT();    return status;  fn_fail:    goto fn_exit;}
开发者ID:Niharikareddy,项目名称:mpich,代码行数:60,


示例2: fn_put

static HYD_status fn_put(int fd, int pid, int pgid, char *args[]){    struct HYD_proxy *proxy;    struct HYD_pmcd_pmi_pg_scratch *pg_scratch;    struct HYD_pmcd_token *tokens;    int token_count, i, ret;    HYD_status status = HYD_SUCCESS;    HYDU_FUNC_ENTER();    status = HYD_pmcd_pmi_args_to_tokens(args, &tokens, &token_count);    HYDU_ERR_POP(status, "unable to convert args to tokens/n");    proxy = HYD_pmcd_pmi_find_proxy(fd);    HYDU_ASSERT(proxy, status);    pg_scratch = (struct HYD_pmcd_pmi_pg_scratch *) proxy->pg->pg_scratch;    for (i = 0; i < token_count; i++) {        status = HYD_pmcd_pmi_add_kvs(tokens[i].key, tokens[i].val, pg_scratch->kvs, &ret);        HYDU_ERR_POP(status, "unable to add keypair to kvs/n");    }  fn_exit:    HYD_pmcd_pmi_free_tokens(tokens, token_count);    HYDU_FUNC_EXIT();    return status;  fn_fail:    goto fn_exit;}
开发者ID:michael-chuvelev,项目名称:mpich,代码行数:30,


示例3: fn_abort

static HYD_status fn_abort(int fd, int pid, int pgid, char *args[]){    int token_count;    struct HYD_pmcd_token *tokens;    /* set a default exit code of 1 */    int exitcode = 1;    HYD_status status = HYD_SUCCESS;    HYDU_FUNC_ENTER();    status = HYD_pmcd_pmi_args_to_tokens(args, &tokens, &token_count);    HYDU_ERR_POP(status, "unable to convert args to tokens/n");    if (HYD_pmcd_pmi_find_token_keyval(tokens, token_count, "exitcode") == NULL)        HYDU_ERR_POP(status, "cannot find token: exitcode/n");    exitcode = atoi(HYD_pmcd_pmi_find_token_keyval(tokens, token_count, "exitcode"));  fn_exit:    /* clean everything up and exit */    status = HYDT_bsci_wait_for_completion(0);    exit(exitcode);    /* never get here */    HYDU_FUNC_EXIT();    return status;  fn_fail:    goto fn_exit;}
开发者ID:michael-chuvelev,项目名称:mpich,代码行数:30,


示例4: HYDU_FUNC_ENTER

char *HYDU_find_full_path(const char *execname){    char *tmp[HYD_NUM_TMP_STRINGS] = { NULL }, *path = NULL, *test_path = NULL;    HYD_status status = HYD_SUCCESS;    HYDU_FUNC_ENTER();    status = HYDU_find_in_path(execname, &test_path);    HYDU_ERR_POP(status, "error while searching for executable in user path/n");    if (test_path) {        tmp[0] = MPL_strdup(test_path);        tmp[1] = MPL_strdup(execname);        tmp[2] = NULL;        status = HYDU_str_alloc_and_join(tmp, &path);        HYDU_ERR_POP(status, "error joining strings/n");    }fn_exit:    HYDU_free_strlist(tmp);    if (test_path)        MPL_free(test_path);    HYDU_FUNC_EXIT();    return path;fn_fail:    goto fn_exit;}
开发者ID:jeffhammond,项目名称:mpich,代码行数:29,


示例5: cmd_response

static HYD_status cmd_response(int fd, int pid, const char *cmd){    struct HYD_pmcd_hdr hdr;    int sent, closed;    HYD_status status = HYD_SUCCESS;    HYDU_FUNC_ENTER();    HYD_pmcd_init_header(&hdr);    hdr.cmd = PMI_RESPONSE;    hdr.pid = pid;    hdr.pmi_version = 1;    hdr.buflen = strlen(cmd);    status = HYDU_sock_write(fd, &hdr, sizeof(hdr), &sent, &closed);    HYDU_ERR_POP(status, "unable to send PMI_RESPONSE header to proxy/n");    HYDU_ASSERT(!closed, status);    if (HYD_server_info.user_global.debug) {        HYDU_dump(stdout, "PMI response to fd %d pid %d: %s", fd, pid, cmd);    }    status = HYDU_sock_write(fd, cmd, strlen(cmd), &sent, &closed);    HYDU_ERR_POP(status, "unable to send response to command/n");    HYDU_ASSERT(!closed, status);  fn_exit:    HYDU_FUNC_EXIT();    return status;  fn_fail:    goto fn_exit;}
开发者ID:OngOngoing,项目名称:219351_homework,代码行数:32,


示例6: HYDU_send_strlist

HYD_status HYDU_send_strlist(int fd, char **strlist){    int i, list_len, len;    int sent, closed;    HYD_status status = HYD_SUCCESS;    HYDU_FUNC_ENTER();    /* Check how many arguments we have */    list_len = HYDU_strlist_lastidx(strlist);    status = HYDU_sock_write(fd, &list_len, sizeof(int), &sent, &closed, HYDU_SOCK_COMM_MSGWAIT);    HYDU_ERR_POP(status, "unable to write data to proxy/n");    HYDU_ASSERT(!closed, status);    /* Convert the string list to parseable data and send */    for (i = 0; strlist[i]; i++) {        len = strlen(strlist[i]) + 1;        status = HYDU_sock_write(fd, &len, sizeof(int), &sent, &closed, HYDU_SOCK_COMM_MSGWAIT);        HYDU_ERR_POP(status, "unable to write data to proxy/n");        HYDU_ASSERT(!closed, status);        status = HYDU_sock_write(fd, strlist[i], len, &sent, &closed, HYDU_SOCK_COMM_MSGWAIT);        HYDU_ERR_POP(status, "unable to write data to proxy/n");        HYDU_ASSERT(!closed, status);    }fn_exit:    HYDU_FUNC_EXIT();    return status;fn_fail:    goto fn_exit;}
开发者ID:jeffhammond,项目名称:mpich,代码行数:34,


示例7: get_abs_wd

static HYD_status get_abs_wd(const char *wd, char **abs_wd){    int ret;    char *cwd;    HYD_status status = HYD_SUCCESS;    if (wd == NULL) {        *abs_wd = NULL;        goto fn_exit;    }    if (wd[0] != '.') {        *abs_wd = (char *) wd;        goto fn_exit;    }    cwd = HYDU_getcwd();    ret = chdir(wd);    if (ret < 0)        HYDU_ERR_POP(status, "error calling chdir/n");    *abs_wd = HYDU_getcwd();    ret = chdir(cwd);    if (ret < 0)        HYDU_ERR_POP(status, "error calling chdir/n");fn_exit:    return status;fn_fail:    goto fn_exit;}
开发者ID:jeffhammond,项目名称:mpich,代码行数:32,


示例8: send_cmd_downstream

static HYD_status send_cmd_downstream(int fd, const char *cmd){    char cmdlen[7];    int sent, closed;    HYD_status status = HYD_SUCCESS;    HYDU_FUNC_ENTER();    MPL_snprintf(cmdlen, 7, "%6u", (unsigned) strlen(cmd));    status = HYDU_sock_write(fd, cmdlen, 6, &sent, &closed, HYDU_SOCK_COMM_MSGWAIT);    HYDU_ERR_POP(status, "error writing PMI line/n");    /* FIXME: We cannot abort when we are not able to send data     * downstream. The upper layer needs to handle this based on     * whether we want to abort or not.*/    HYDU_ASSERT(!closed, status);    if (HYD_pmcd_pmip.user_global.debug) {        HYDU_dump(stdout, "PMI response: %s/n", cmd);    }    status = HYDU_sock_write(fd, cmd, strlen(cmd), &sent, &closed, HYDU_SOCK_COMM_MSGWAIT);    HYDU_ERR_POP(status, "error writing PMI line/n");    HYDU_ASSERT(!closed, status);  fn_exit:    HYDU_FUNC_EXIT();    return status;  fn_fail:    goto fn_exit;}
开发者ID:ParaStation,项目名称:psmpi2,代码行数:31,


示例9: alloc_fwd_hash

static HYD_status alloc_fwd_hash(struct fwd_hash **fwd_hash, int in, int out){    HYD_status status = HYD_SUCCESS;    HYDU_FUNC_ENTER();    HYDU_MALLOC_OR_JUMP(*fwd_hash, struct fwd_hash *, sizeof(struct fwd_hash), status);    (*fwd_hash)->in = in;    (*fwd_hash)->out = out;    (*fwd_hash)->buf_offset = 0;    (*fwd_hash)->buf_count = 0;    (*fwd_hash)->next = NULL;    status = HYDU_sock_set_nonblock(in);    HYDU_ERR_POP(status, "unable to set out-socket to non-blocking/n");    status = HYDU_sock_set_nonblock(out);    HYDU_ERR_POP(status, "unable to set out-socket to non-blocking/n");  fn_exit:    HYDU_FUNC_EXIT();    return status;  fn_fail:    goto fn_exit;}
开发者ID:michael-chuvelev,项目名称:mpich,代码行数:28,


示例10: fn_info_putnodeattr

static HYD_status fn_info_putnodeattr(int fd, char *args[]){    struct HYD_string_stash stash;    char *key, *val, *thrid, *cmd;    struct HYD_pmcd_token *tokens = NULL;    int token_count, ret;    struct HYD_pmcd_pmi_v2_reqs *req;    HYD_status status = HYD_SUCCESS;    HYDU_FUNC_ENTER();    status = HYD_pmcd_pmi_args_to_tokens(args, &tokens, &token_count);    HYDU_ERR_POP(status, "unable to convert args to tokens/n");    key = HYD_pmcd_pmi_find_token_keyval(tokens, token_count, "key");    HYDU_ERR_CHKANDJUMP(status, key == NULL, HYD_INTERNAL_ERROR, "unable to find key token/n");    val = HYD_pmcd_pmi_find_token_keyval(tokens, token_count, "value");    HYDU_ERR_CHKANDJUMP(status, val == NULL, HYD_INTERNAL_ERROR, "unable to find value token/n");    thrid = HYD_pmcd_pmi_find_token_keyval(tokens, token_count, "thrid");    status = HYD_pmcd_pmi_add_kvs(key, val, HYD_pmcd_pmip.local.kvs, &ret);    HYDU_ERR_POP(status, "unable to put data into kvs/n");    HYD_STRING_STASH_INIT(stash);    HYD_STRING_STASH(stash, MPL_strdup("cmd=info-putnodeattr-response;"), status);    if (thrid) {        HYD_STRING_STASH(stash, MPL_strdup("thrid="), status);        HYD_STRING_STASH(stash, MPL_strdup(thrid), status);        HYD_STRING_STASH(stash, MPL_strdup(";"), status);    }    HYD_STRING_STASH(stash, MPL_strdup("rc="), status);    HYD_STRING_STASH(stash, HYDU_int_to_str(ret), status);    HYD_STRING_STASH(stash, MPL_strdup(";"), status);    HYD_STRING_SPIT(stash, cmd, status);    send_cmd_downstream(fd, cmd);    MPL_free(cmd);    for (req = pending_reqs; req; req = req->next) {        if (!strcmp(req->key, key)) {            /* Poke the progress engine before exiting */            status = poke_progress(key);            HYDU_ERR_POP(status, "poke progress error/n");            break;        }    }  fn_exit:    if (tokens)        HYD_pmcd_pmi_free_tokens(tokens, token_count);    HYDU_FUNC_EXIT();    return status;  fn_fail:    goto fn_exit;}
开发者ID:ParaStation,项目名称:psmpi2,代码行数:59,


示例11: HYDU_find_in_path

HYD_status HYDU_find_in_path(const char *execname, char **path){    char *tmp[HYD_NUM_TMP_STRINGS], *path_loc = NULL, *test_loc, *user_path;    HYD_status status = HYD_SUCCESS;    HYDU_FUNC_ENTER();    /* The executable is somewhere in the user's path. Find it. */    if (MPL_env2str("PATH", (const char **) &user_path))        user_path = MPL_strdup(user_path);    if (user_path) {    /* If the PATH environment exists */        status = get_abs_wd(strtok(user_path, ";:"), &test_loc);        HYDU_ERR_POP(status, "error getting absolute working dir/n");        do {            tmp[0] = MPL_strdup(test_loc);            tmp[1] = MPL_strdup("/");            tmp[2] = MPL_strdup(execname);            tmp[3] = NULL;            status = HYDU_str_alloc_and_join(tmp, &path_loc);            HYDU_ERR_POP(status, "unable to join strings/n");            HYDU_free_strlist(tmp);            if (exists(path_loc)) {                tmp[0] = MPL_strdup(test_loc);                tmp[1] = MPL_strdup("/");                tmp[2] = NULL;                status = HYDU_str_alloc_and_join(tmp, path);                HYDU_ERR_POP(status, "unable to join strings/n");                HYDU_free_strlist(tmp);                goto fn_exit;   /* We are done */            }            MPL_free(path_loc);            path_loc = NULL;            status = get_abs_wd(strtok(NULL, ";:"), &test_loc);            HYDU_ERR_POP(status, "error getting absolute working dir/n");        } while (test_loc);    }    /* There is either no PATH environment or we could not find the     * file in the PATH. Just return an empty path */    *path = MPL_strdup("");fn_exit:    if (user_path)        MPL_free(user_path);    if (path_loc)        MPL_free(path_loc);    HYDU_FUNC_EXIT();    return status;fn_fail:    goto fn_exit;}
开发者ID:jeffhammond,项目名称:mpich,代码行数:59,


示例12: HYDT_ckpoint_blcr_restart

HYD_status HYDT_ckpoint_blcr_restart(const char *prefix, int pgid, int id, int ckpt_num,                                     struct HYD_env *envlist, int num_ranks, int ranks[],                                     int *in, int *out, int *err, int *pid){    HYD_status status = HYD_SUCCESS;    int ret;    int context_fd;    cr_restart_handle_t cr_handle;    cr_restart_args_t args;    char filename[256];    char port_str[64];    int port;    HYDU_FUNC_ENTER();    /* create listener socket for stdin/out/err */    status = create_stdinouterr_sock(&port);    HYDU_ERR_POP(status, "failed to create stdin/out/err socket/n");    MPL_snprintf(port_str, sizeof(port_str), "%d", port);    status = HYDU_append_env_to_list(STDINOUTERR_PORT_NAME, port_str, &envlist);    HYDU_ERR_POP(status, "failed to add to env list/n");    status = create_env_file(envlist, num_ranks, ranks);    if (status)        HYDU_ERR_POP(status, "blcr restart/n");    /* open the checkpoint file */    MPL_snprintf(filename, sizeof(filename), "%s/context-num%d-%d-%d", prefix, ckpt_num, pgid,                 id);    context_fd = open(filename, O_RDONLY /* | O_LARGEFILE */);    HYDU_ERR_CHKANDJUMP(status, context_fd < 0, HYD_INTERNAL_ERROR, "open failed, %s/n",                        strerror(errno));    /* ... initialize the request structure */    cr_initialize_restart_args_t(&args);    args.cr_fd = context_fd;    args.cr_flags = CR_RSTRT_RESTORE_PID;    /* ... issue the request */    ret = cr_request_restart(&args, &cr_handle);    HYDU_ERR_CHKANDJUMP(status, ret, HYD_INTERNAL_ERROR, "cr_request_restart failed, %s/n",                        strerror(errno));    ret = close(context_fd);    HYDU_ERR_CHKANDJUMP(status, ret, HYD_INTERNAL_ERROR, "close failed, %s/n",                        strerror(errno));    /* get fds for stdin/out/err sockets, and get pids of restarted processes */    status = wait_for_stdinouterr_sockets(num_ranks, ranks, in, out, err, pid);    if (status)        HYDU_ERR_POP(status, "blcr restart/n");  fn_exit:    HYDU_FUNC_EXIT();    return status;  fn_fail:    goto fn_exit;}
开发者ID:adk9,项目名称:hydra,代码行数:59,


示例13: handle_pmi_cmd

static HYD_status handle_pmi_cmd(int fd, int pgid, int pid, char *buf, int pmi_version){    char **args = NULL, *cmd = NULL;    struct HYD_pmcd_pmi_handle *h;    int i;    HYD_status status = HYD_SUCCESS;    HYDU_FUNC_ENTER();    if (pmi_version == 1)        HYD_pmcd_pmi_handle = HYD_pmcd_pmi_v1;    else        HYD_pmcd_pmi_handle = HYD_pmcd_pmi_v2;    if (HYD_server_info.user_global.debug)        HYDU_dump(stdout, "[pgid: %d] got PMI command: %s/n", pgid, buf);    HYDU_MALLOC(args, char **, MAX_PMI_ARGS * sizeof(char *), status);    for (i = 0; i < MAX_PMI_ARGS; i++)        args[i] = NULL;    status = HYD_pmcd_pmi_parse_pmi_cmd(buf, pmi_version, &cmd, args);    HYDU_ERR_POP(status, "unable to parse PMI command/n");#if defined ENABLE_PROFILING    if (HYD_server_info.enable_profiling)        HYD_server_info.num_pmi_calls++;#endif /* ENABLE_PROFILING */    h = HYD_pmcd_pmi_handle;    while (h->handler) {        if (!strcmp(cmd, h->cmd)) {            status = h->handler(fd, pid, pgid, args);            HYDU_ERR_POP(status, "PMI handler returned error/n");            break;        }        h++;    }    if (!h->handler) {        /* We don't understand the command */        HYDU_ERR_SETANDJUMP(status, HYD_INTERNAL_ERROR,                            "Unrecognized PMI command: %s | cleaning up processes/n", cmd);    }  fn_exit:    if (cmd)        HYDU_FREE(cmd);    if (args) {        HYDU_free_strlist(args);        HYDU_free(args);    }    HYDU_FUNC_EXIT();    return status;  fn_fail:    goto fn_exit;}
开发者ID:zhanglt,项目名称:mpich,代码行数:57,


示例14: add_exec_to_proxy

static HYD_status add_exec_to_proxy(struct HYD_exec *exec, struct HYD_proxy *proxy, int num_procs)#endif{    int i;    struct HYD_exec *texec;    HYD_status status = HYD_SUCCESS;    if (proxy->exec_list == NULL) {        status = HYDU_alloc_exec(&proxy->exec_list);        HYDU_ERR_POP(status, "unable to allocate proxy exec/n");        for (i = 0; exec->exec[i]; i++)            proxy->exec_list->exec[i] = HYDU_strdup(exec->exec[i]);        proxy->exec_list->exec[i] = NULL;        proxy->exec_list->wdir = HYDU_strdup(exec->wdir);        proxy->exec_list->proc_count = num_procs;#if defined(FINEGRAIN_MPI)        proxy->exec_list->nfg = exec->nfg;        proxy->exec_list->start_rank = current_exec_start_rank;#endif        proxy->exec_list->env_prop = exec->env_prop ? HYDU_strdup(exec->env_prop) : NULL;        proxy->exec_list->user_env = HYDU_env_list_dup(exec->user_env);        proxy->exec_list->appnum = exec->appnum;    }    else {        for (texec = proxy->exec_list; texec->next; texec = texec->next);        status = HYDU_alloc_exec(&texec->next);        HYDU_ERR_POP(status, "unable to allocate proxy exec/n");        texec = texec->next;        for (i = 0; exec->exec[i]; i++)            texec->exec[i] = HYDU_strdup(exec->exec[i]);        texec->exec[i] = NULL;        texec->wdir = HYDU_strdup(exec->wdir);        texec->proc_count = num_procs;#if defined(FINEGRAIN_MPI)        texec->nfg = exec->nfg;        texec->start_rank = current_exec_start_rank;#endif        texec->env_prop = exec->env_prop ? HYDU_strdup(exec->env_prop) : NULL;        texec->user_env = HYDU_env_list_dup(exec->user_env);        texec->appnum = exec->appnum;    }    proxy->proxy_process_count += num_procs;    proxy->node->active_processes += num_procs;  fn_exit:    return status;  fn_fail:    goto fn_exit;}
开发者ID:tjhei,项目名称:fgmpi,代码行数:55,


示例15: fn_publish_name

static HYD_status fn_publish_name(int fd, int pid, int pgid, char *args[]){    struct HYD_string_stash stash;    char *cmd, *val;    int token_count;    struct HYD_pmcd_token *tokens = NULL;    char *name = NULL, *port = NULL;    int success = 0;    HYD_status status = HYD_SUCCESS;    HYDU_FUNC_ENTER();    status = HYD_pmcd_pmi_args_to_tokens(args, &tokens, &token_count);    HYDU_ERR_POP(status, "unable to convert args to tokens/n");    if ((val = HYD_pmcd_pmi_find_token_keyval(tokens, token_count, "service")) == NULL)        HYDU_ERR_POP(status, "cannot find token: service/n");    name = MPL_strdup(val);    if ((val = HYD_pmcd_pmi_find_token_keyval(tokens, token_count, "port")) == NULL)        HYDU_ERR_POP(status, "cannot find token: port/n");    port = MPL_strdup(val);    status = HYD_pmcd_pmi_publish(name, port, &success);    HYDU_ERR_POP(status, "error publishing service/n");    HYD_STRING_STASH_INIT(stash);    if (success)        HYD_STRING_STASH(stash, MPL_strdup("cmd=publish_result info=ok rc=0 msg=success/n"),                         status);    else        HYD_STRING_STASH(stash,                         MPL_strdup("cmd=publish_result info=ok rc=1 msg=key_already_present/n"),                         status);    HYD_STRING_SPIT(stash, cmd, status);    status = cmd_response(fd, pid, cmd);    HYDU_ERR_POP(status, "send command failed/n");    MPL_free(cmd);  fn_exit:    if (tokens)        HYD_pmcd_pmi_free_tokens(tokens, token_count);    if (name)        MPL_free(name);    if (port)        MPL_free(port);    HYDU_FUNC_EXIT();    return status;  fn_fail:    goto fn_exit;}
开发者ID:michael-chuvelev,项目名称:mpich,代码行数:55,


示例16: fn_name_lookup

static HYD_status fn_name_lookup(int fd, int pid, int pgid, char *args[]){    struct HYD_string_stash stash;    char *cmd, *thrid, *name, *value;    int token_count;    struct HYD_pmcd_token *tokens = NULL;    HYD_status status = HYD_SUCCESS;    HYDU_FUNC_ENTER();    status = HYD_pmcd_pmi_args_to_tokens(args, &tokens, &token_count);    HYDU_ERR_POP(status, "unable to convert args to tokens/n");    thrid = HYD_pmcd_pmi_find_token_keyval(tokens, token_count, "thrid");    if ((name = HYD_pmcd_pmi_find_token_keyval(tokens, token_count, "name")) == NULL)        HYDU_ERR_POP(status, "cannot find token: name/n");    status = HYD_pmcd_pmi_lookup(name, &value);    HYDU_ERR_POP(status, "error while looking up service/n");    HYD_STRING_STASH_INIT(stash);    HYD_STRING_STASH(stash, HYDU_strdup("cmd=name-lookup-response;"), status);    if (thrid) {        HYD_STRING_STASH(stash, HYDU_strdup("thrid="), status);        HYD_STRING_STASH(stash, HYDU_strdup(thrid), status);        HYD_STRING_STASH(stash, HYDU_strdup(";"), status);    }    if (value) {        HYD_STRING_STASH(stash, HYDU_strdup("port="), status);        HYD_STRING_STASH(stash, HYDU_strdup(value), status);        HYD_STRING_STASH(stash, HYDU_strdup(";found=TRUE;rc=0;"), status);    }    else {        HYD_STRING_STASH(stash, HYDU_strdup("found=FALSE;rc=1;"), status);    }    HYD_STRING_SPIT(stash, cmd, status);    status = cmd_response(fd, pid, cmd);    HYDU_ERR_POP(status, "send command failed/n");    HYDU_FREE(cmd);  fn_exit:    if (tokens)        HYD_pmcd_pmi_free_tokens(tokens, token_count);    HYDU_FUNC_EXIT();    return status;  fn_fail:    goto fn_exit;}
开发者ID:Niharikareddy,项目名称:mpich,代码行数:52,


示例17: HYDU_sock_create_and_listen_portstr

HYD_statusHYDU_sock_create_and_listen_portstr(char *iface, char *hostname, char *port_range,                                    char **port_str,                                    HYD_status(*callback) (int fd, HYD_event_t events,                                                           void *userp), void *userp){    int listenfd;    char *sport, *real_port_range, *ip = NULL;    uint16_t port;    HYD_status status = HYD_SUCCESS;    /* Listen on a port in the port range */    port = 0;    real_port_range = port_range ? MPL_strdup(port_range) : NULL;    status = HYDU_sock_listen(&listenfd, real_port_range, &port);    HYDU_ERR_POP(status, "unable to listen on port/n");    /* Register the listening socket with the demux engine */    status = HYDT_dmx_register_fd(1, &listenfd, HYD_POLLIN, userp, callback);    HYDU_ERR_POP(status, "unable to register fd/n");    /* Create a port string for MPI processes to use to connect to */    if (iface) {        status = HYDU_sock_get_iface_ip(iface, &ip);        HYDU_ERR_POP(status, "unable to get network interface IP/n");    }    else if (hostname) {        ip = MPL_strdup(hostname);    }    else {        char localhost[MAX_HOSTNAME_LEN] = { 0 };        if (gethostname(localhost, MAX_HOSTNAME_LEN) < 0)            HYDU_ERR_SETANDJUMP(status, HYD_SOCK_ERROR, "unable to get local hostname/n");        ip = MPL_strdup(localhost);    }    sport = HYDU_int_to_str(port);    HYDU_MALLOC_OR_JUMP(*port_str, char *, strlen(ip) + 1 + strlen(sport) + 1, status);    MPL_snprintf(*port_str, strlen(ip) + 1 + strlen(sport) + 1, "%s:%s", ip, sport);    MPL_free(sport);  fn_exit:    if (ip)        MPL_free(ip);    return status;  fn_fail:    goto fn_exit;}
开发者ID:michael-chuvelev,项目名称:mpich,代码行数:51,


示例18: send_cmd_upstream

static HYD_status send_cmd_upstream(const char *start, int fd, char *args[]){    int i, sent, closed;    struct HYD_string_stash stash;    char *buf = NULL;    struct HYD_pmcd_hdr hdr;    HYD_status status = HYD_SUCCESS;    HYDU_FUNC_ENTER();    HYD_STRING_STASH_INIT(stash);    HYD_STRING_STASH(stash, MPL_strdup(start), status);    for (i = 0; args[i]; i++) {        HYD_STRING_STASH(stash, MPL_strdup(args[i]), status);        if (args[i + 1])            HYD_STRING_STASH(stash, MPL_strdup(";"), status);    }    HYD_STRING_SPIT(stash, buf, status);    HYD_pmcd_init_header(&hdr);    hdr.cmd = PMI_CMD;    hdr.pid = fd;    hdr.buflen = strlen(buf);    hdr.pmi_version = 2;    status =        HYDU_sock_write(HYD_pmcd_pmip.upstream.control, &hdr, sizeof(hdr), &sent, &closed,                        HYDU_SOCK_COMM_MSGWAIT);    HYDU_ERR_POP(status, "unable to send PMI header upstream/n");    HYDU_ASSERT(!closed, status);    if (HYD_pmcd_pmip.user_global.debug) {        HYDU_dump(stdout, "forwarding command (%s) upstream/n", buf);    }    status = HYDU_sock_write(HYD_pmcd_pmip.upstream.control, buf, hdr.buflen, &sent, &closed,                             HYDU_SOCK_COMM_MSGWAIT);    HYDU_ERR_POP(status, "unable to send PMI command upstream/n");    HYDU_ASSERT(!closed, status);  fn_exit:    if (buf)        MPL_free(buf);    HYDU_FUNC_EXIT();    return status;  fn_fail:    goto fn_exit;}
开发者ID:ParaStation,项目名称:psmpi2,代码行数:49,


示例19: fn_info_getjobattr

static HYD_status fn_info_getjobattr(int fd, char *args[]){    struct HYD_string_stash stash;    char *cmd, *key, *thrid;    struct HYD_pmcd_token *tokens;    int token_count;    HYD_status status = HYD_SUCCESS;    HYDU_FUNC_ENTER();    status = HYD_pmcd_pmi_args_to_tokens(args, &tokens, &token_count);    HYDU_ERR_POP(status, "unable to convert args to tokens/n");    key = HYD_pmcd_pmi_find_token_keyval(tokens, token_count, "key");    HYDU_ERR_CHKANDJUMP(status, key == NULL, HYD_INTERNAL_ERROR, "unable to find token: key/n");    thrid = HYD_pmcd_pmi_find_token_keyval(tokens, token_count, "thrid");    if (!strcmp(key, "PMI_process_mapping")) {        HYD_STRING_STASH_INIT(stash);        HYD_STRING_STASH(stash, MPL_strdup("cmd=info-getjobattr-response;"), status);        if (thrid) {            HYD_STRING_STASH(stash, MPL_strdup("thrid="), status);            HYD_STRING_STASH(stash, MPL_strdup(thrid), status);            HYD_STRING_STASH(stash, MPL_strdup(";"), status);        }        HYD_STRING_STASH(stash, MPL_strdup("found=TRUE;value="), status);        HYD_STRING_STASH(stash, MPL_strdup(HYD_pmcd_pmip.system_global.pmi_process_mapping),                         status);        HYD_STRING_STASH(stash, MPL_strdup(";rc=0;"), status);        HYD_STRING_SPIT(stash, cmd, status);        send_cmd_downstream(fd, cmd);        MPL_free(cmd);    } else {        status = send_cmd_upstream("cmd=info-getjobattr;", fd, args);        HYDU_ERR_POP(status, "error sending command upstream/n");    }  fn_exit:    HYD_pmcd_pmi_free_tokens(tokens, token_count);    HYDU_FUNC_EXIT();    return status;  fn_fail:    goto fn_exit;}
开发者ID:ParaStation,项目名称:psmpi2,代码行数:48,


示例20: HYDU_correct_wdir

HYD_status HYDU_correct_wdir(char **wdir){    char *tmp[HYD_NUM_TMP_STRINGS];    HYD_status status = HYD_SUCCESS;    HYDU_FUNC_ENTER();    if (*wdir == NULL) {        *wdir = HYDU_getcwd();    }    else if (*wdir[0] != '/') {        tmp[0] = HYDU_getcwd();        tmp[1] = HYDU_strdup("/");        tmp[2] = HYDU_strdup(*wdir);        tmp[3] = NULL;        HYDU_FREE(*wdir);        status = HYDU_str_alloc_and_join(tmp, wdir);        HYDU_ERR_POP(status, "unable to join strings/n");        HYDU_free_strlist(tmp);    }  fn_exit:    HYDU_FUNC_EXIT();    return status;  fn_fail:    goto fn_exit;}
开发者ID:tjhei,项目名称:fgmpi,代码行数:29,


示例21: HYDU_append_env_str_to_list

HYD_status HYDU_append_env_str_to_list(const char *str, struct HYD_env **env_list){    char *my_str = NULL;    char *env_name, *env_value;    HYD_status status = HYD_SUCCESS;    HYDU_FUNC_ENTER();    my_str = env_value = MPL_strdup(str);    /* don't use strtok, it will mangle env values that contain '=' */    env_name = MPL_strsep(&env_value, "=");    HYDU_ASSERT(env_name != NULL, status);    status = HYDU_append_env_to_list(env_name, env_value, env_list);    HYDU_ERR_POP(status, "unable to append env to list/n");  fn_exit:    if (my_str)        MPL_free(my_str);    HYDU_FUNC_EXIT();    return status;  fn_fail:    goto fn_exit;}
开发者ID:ParaStation,项目名称:psmpi2,代码行数:25,


示例22: fn_barrier_in

static HYD_status fn_barrier_in(int fd, int pid, int pgid, char *args[]){    struct HYD_proxy *proxy, *tproxy;    const char *cmd;    int proxy_count;    HYD_status status = HYD_SUCCESS;    HYDU_FUNC_ENTER();    proxy = HYD_pmcd_pmi_find_proxy(fd);    HYDU_ASSERT(proxy, status);    proxy_count = 0;    for (tproxy = proxy->pg->proxy_list; tproxy; tproxy = tproxy->next)        proxy_count++;    proxy->pg->barrier_count++;    if (proxy->pg->barrier_count == proxy_count) {        proxy->pg->barrier_count = 0;        cmd = "cmd=barrier_out/n";        for (tproxy = proxy->pg->proxy_list; tproxy; tproxy = tproxy->next) {            status = cmd_response(tproxy->control_fd, pid, cmd);            HYDU_ERR_POP(status, "error writing PMI line/n");        }    }  fn_exit:    HYDU_FUNC_EXIT();    return status;  fn_fail:    goto fn_exit;}
开发者ID:OngOngoing,项目名称:219351_homework,代码行数:34,


示例23: HYDT_bscd_sge_query_node_list

HYD_status HYDT_bscd_sge_query_node_list(struct HYD_node **node_list){    char *hostfile;    HYD_status status = HYD_SUCCESS;    HYDU_FUNC_ENTER();    if (MPL_env2str("PE_HOSTFILE", (const char **) &hostfile) == 0)        hostfile = NULL;    if (hostfile == NULL) {        *node_list = NULL;        HYDU_ERR_SETANDJUMP(status, HYD_INTERNAL_ERROR, "No SGE nodefile found/n");    }    else {        status = HYDU_parse_hostfile(hostfile, node_list, process_mfile_token);        HYDU_ERR_POP(status, "error parsing hostfile/n");    }  fn_exit:    HYDU_FUNC_EXIT();    return status;  fn_fail:    goto fn_exit;}
开发者ID:abhinavvishnu,项目名称:matex,代码行数:26,


示例24: HYDU_putenv

HYD_status HYDU_putenv(struct HYD_env *env, HYD_env_overwrite_t overwrite){    char *tmp[HYD_NUM_TMP_STRINGS], *str;    int i;    HYD_status status = HYD_SUCCESS;    HYDU_FUNC_ENTER();    /* If the overwrite flag is false, just exit */    if (MPL_env2str(env->env_name, (const char **) &str) && overwrite == HYD_ENV_OVERWRITE_FALSE)        goto fn_exit;    i = 0;    tmp[i++] = MPL_strdup(env->env_name);    tmp[i++] = MPL_strdup("=");    tmp[i++] = env->env_value ? MPL_strdup(env->env_value) : MPL_strdup("");    tmp[i++] = NULL;    status = HYDU_str_alloc_and_join(tmp, &str);    HYDU_ERR_POP(status, "unable to join strings/n");    MPL_putenv(str);    for (i = 0; tmp[i]; i++)        MPL_free(tmp[i]);  fn_exit:    HYDU_FUNC_EXIT();    return status;  fn_fail:    goto fn_exit;}
开发者ID:ParaStation,项目名称:psmpi2,代码行数:32,


示例25: process_mfile_token

static HYD_status process_mfile_token(char *token, int newline, struct HYD_node **node_list){    int num_procs;    static int entry_count = 0;    static char *hostname;    HYD_status status = HYD_SUCCESS;    entry_count++;    if (newline) {      /* The first entry gives the hostname */        entry_count = 1;        if (hostname)            HYDU_ERR_SETANDJUMP(status, HYD_INTERNAL_ERROR, "unexpected token %s/n", token);        hostname = HYDU_strdup(token);    }    else {      /* Not a new line */        if (entry_count != 2)            goto fn_exit;        num_procs = atoi(token);        status = HYDU_add_to_node_list(hostname, num_procs, node_list);        HYDU_ERR_POP(status, "unable to initialize proxy/n");        hostname = NULL;    }  fn_exit:    return status;  fn_fail:    goto fn_exit;}
开发者ID:abhinavvishnu,项目名称:matex,代码行数:33,


示例26: HYDU_env_to_str

HYD_status HYDU_env_to_str(struct HYD_env *env, char **str){    int i;    char *tmp[HYD_NUM_TMP_STRINGS];    HYD_status status = HYD_SUCCESS;    HYDU_FUNC_ENTER();    i = 0;    tmp[i++] = MPL_strdup("'");    tmp[i++] = MPL_strdup(env->env_name);    tmp[i++] = MPL_strdup("=");    tmp[i++] = env->env_value ? MPL_strdup(env->env_value) : MPL_strdup("");    tmp[i++] = MPL_strdup("'");    tmp[i++] = NULL;    status = HYDU_str_alloc_and_join(tmp, str);    HYDU_ERR_POP(status, "unable to join strings/n");    for (i = 0; tmp[i]; i++)        MPL_free(tmp[i]);  fn_exit:    HYDU_FUNC_EXIT();    return status;  fn_fail:    goto fn_exit;}
开发者ID:ParaStation,项目名称:psmpi2,代码行数:29,


示例27: HYDU_FUNC_ENTER

char *HYDU_size_t_to_str(size_t x){    int len = 1, i;    size_t max = 10;    char *str = NULL;    HYD_status status = HYD_SUCCESS;    HYDU_FUNC_ENTER();    while (x >= max) {        len++;        max *= 10;    }    len++;    HYDU_MALLOC(str, char *, len, status);    HYDU_ERR_POP(status, "unable to allocate memory/n");    for (i = 0; i < len; i++)        str[i] = '0';    HYDU_snprintf(str, len, "%llu", (unsigned long long) x);  fn_exit:    HYDU_FUNC_EXIT();    return str;  fn_fail:    goto fn_exit;}
开发者ID:addy004,项目名称:mpich2-yarn,代码行数:30,


示例28: HYDT_topo_bind

HYD_status HYDT_topo_bind(int idx){    HYD_status status = HYD_SUCCESS;    HYDU_FUNC_ENTER();    if (idx < 0 || ignore_binding)        goto fn_exit;#if defined HAVE_HWLOC    if (!strcmp(HYDT_topo_info.topolib, "hwloc")) {        status = HYDT_topo_hwloc_bind(idx);        HYDU_ERR_POP(status, "HWLOC failure binding process to core/n");        goto fn_exit;    }#endif /* HAVE_HWLOC */    HYDU_ERR_SETANDJUMP(status, HYD_INTERNAL_ERROR, "no topology library available/n");  fn_exit:    HYDU_FUNC_EXIT();    return status;  fn_fail:    goto fn_exit;}
开发者ID:NexMirror,项目名称:MPICH,代码行数:26,


示例29: list_to_nodes

static HYD_status list_to_nodes(char *str){    hostlist_t hostlist;    char *host;    int k = 0;    HYD_status status = HYD_SUCCESS;    if ((hostlist = slurm_hostlist_create(str)) == NULL) {        status = HYD_FAILURE;        goto fn_fail;    }    for (host = slurm_hostlist_shift(hostlist); host; host = slurm_hostlist_shift(hostlist)) {        status = HYDU_add_to_node_list(host, tasks_per_node[k++], &global_node_list);        HYDU_ERR_POP(status, "unable to add to node list/n");    }    slurm_hostlist_destroy(hostlist);  fn_exit:    return status;  fn_fail:    goto fn_exit;}
开发者ID:ParaStation,项目名称:psmpi2,代码行数:25,



注:本文中的HYDU_ERR_POP函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


C++ HYDU_FUNC_ENTER函数代码示例
C++ HX_VISIT_MEMBER_NAME函数代码示例
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。