int main(int argc, char *argv[], char *envp[]) { char buff[BUFSIZ]; int rc; signal(SIGTTOU, SIG_IGN); signal(SIGINT, sigint_handler); rc = setpgid(0, 0); assert(rc != -1); builtin_init(); history_init(); job_init(); print_prompt(); while (fgets(buff, BUFSIZ, stdin)) { job_run_command(buff, envp); job_wait(); print_prompt(); } job_finalize(); history_finalize(); builtin_finalize(); return 0; }
void qmp_job_finalize(const char *id, Error **errp) { AioContext *aio_context; Job *job = find_job(id, &aio_context, errp); if (!job) { return; } trace_qmp_job_finalize(job); job_finalize(job, errp); aio_context_release(aio_context); }
/* PVFS_finalize * * shuts down the PVFS system interface * * returns 0 on success, -errno on failure */ int PVFS_sys_finalize() { id_gen_safe_finalize(); PINT_util_digest_finalize(); PINT_ncache_finalize(); PINT_acache_finalize(); PINT_cached_config_finalize(); /* flush all known server configurations */ PINT_server_config_mgr_finalize(); /* finalize the I/O interfaces */ job_time_mgr_finalize(); job_close_context(pint_client_sm_context); job_finalize(); PINT_flow_finalize(); PINT_req_sched_finalize(); BMI_finalize(); PINT_encode_finalize(); PINT_dist_finalize(); PINT_event_finalize(); PINT_release_pvfstab(); gossip_disable(); PINT_client_state_machine_release(g_smcb); return 0; }
int main(int argc, char **argv) { int ret = -1; struct request_foo* req = NULL; struct ack_foo* ack = NULL; PVFS_BMI_addr_t server_addr; job_status_s status1; job_id_t tmp_id; job_context_id context; /* set debugging level */ gossip_enable_stderr(); gossip_set_debug_mask(0, 0); /* start the BMI interface */ ret = BMI_initialize("bmi_tcp", NULL, 0); if(ret < 0) { fprintf(stderr, "BMI_initialize failure.\n"); return(-1); } ret = trove_initialize( TROVE_METHOD_DBPF, NULL, "/tmp/pvfs2-test-space", 0); if(ret < 0) { fprintf(stderr, "trove_initialize failure.\n"); return(-1); } /* start the job interface */ ret = job_initialize(0); if(ret < 0) { fprintf(stderr, "job_initialize failure.\n"); return(-1); } ret = job_open_context(&context); if(ret < 0) { fprintf(stderr, "job_open_context() failure.\n"); return(-1); } /* lookup the server to get a BMI style address for it */ ret = BMI_addr_lookup(&server_addr, "tcp://localhost:3414"); if(ret < 0) { fprintf(stderr, "BMI_addr_lookup failure.\n"); return(-1); } /* allocate some buffers for the req and ack */ req = BMI_memalloc(server_addr, sizeof(struct request_foo), BMI_SEND); ack = BMI_memalloc(server_addr, sizeof(struct ack_foo), BMI_RECV); if(!ack || ! req) { fprintf(stderr, "BMI_memalloc failure.\n"); return(-1); } /* send a message */ ret = job_bmi_send(server_addr, req, sizeof(struct request_foo), 0, BMI_PRE_ALLOC, 1, NULL, 0, &status1, &tmp_id, context, JOB_TIMEOUT_INF, NULL); if(ret < 0) { fprintf(stderr, "job_bmi_send() failure.\n"); return(-1); } if(ret == 0) { int count = 0; ret = job_test(tmp_id, &count, NULL, &status1, -1, context); if(ret < 0) { fprintf(stderr, "job_test() failure.\n"); return(-1); } } /* check status */ if(status1.error_code != 0) { fprintf(stderr, "job failure.\n"); return(-1); } /* receive a message */ ret = job_bmi_recv(server_addr, ack, sizeof(struct ack_foo), 0, BMI_PRE_ALLOC, NULL, 0, &status1, &tmp_id, context, JOB_TIMEOUT_INF, NULL); if(ret < 0) { fprintf(stderr, "job_bmi_recv() failure.\n"); return(-1); } if(ret == 0) { int count = 0; ret = job_test(tmp_id, &count, NULL, &status1, -1, context); if(ret < 0) { fprintf(stderr, "job_test() failure.\n"); return(-1); } } /* check status */ if(status1.error_code != 0) { fprintf(stderr, "job failure.\n"); return(-1); } /* check the size */ if(status1.actual_size != sizeof(struct ack_foo)) { fprintf(stderr, "short recv.\n"); return(-1); } /* free memory buffers */ BMI_memfree(server_addr, req, sizeof(struct request_foo), BMI_SEND); BMI_memfree(server_addr, ack, sizeof(struct ack_foo), BMI_RECV); /* shut down the interfaces */ job_close_context(context); job_finalize(); BMI_finalize(); trove_finalize(TROVE_METHOD_DBPF); return(0); }
int main(int argc, char **argv) { int ret = 1; struct PINT_dev_unexp_info info; char buf1[] = "Hello "; char buf2[] = "World."; void* buffer_list[2]; int size_list[2]; job_context_id context; job_status_s jstat; job_id_t tmp_id; ret = PINT_dev_initialize("/dev/pvfs2-req", 0); if(ret < 0) { PVFS_perror("PINT_dev_initialize", ret); return(-1); } /* start the BMI interface */ ret = BMI_initialize("bmi_tcp", NULL, 0); if(ret < 0) { fprintf(stderr, "BMI_initialize failure.\n"); return(-1); } /* start the flow interface */ ret = PINT_flow_initialize("flowproto_bmi_trove", 0); if(ret < 0) { fprintf(stderr, "flow init failure.\n"); return(-1); } ret = job_initialize(0); if(ret < 0) { PVFS_perror("job_initialize", ret); return(-1); } ret = job_open_context(&context); if(ret < 0) { PVFS_perror("job_open_context", ret); return(-1); } /* post job for unexpected device messages */ ret = job_dev_unexp(&info, NULL, 0, &jstat, &tmp_id, 0, context); if(ret < 0) { PVFS_perror("job_dev_unexp()", ret); return(-1); } if(ret == 0) { printf("no immed completion.\n"); ret = block_on_job(tmp_id, NULL, &jstat, context); if(ret < 0) { PVFS_perror("block_on_job()", ret); return(-1); } } else { printf("immed completion.\n"); } if(jstat.error_code != 0) { PVFS_perror("job_bmi_unexp() error code", jstat.error_code); return(-1); } printf("Got message: size: %d, tag: %d, payload: %s\n", info.size, (int)info.tag, (char*)info.buffer); PINT_dev_release_unexpected(&info); /* try writing a list message */ buffer_list[0] = buf1; buffer_list[1] = buf2; size_list[0] = strlen(buf1); size_list[1] = strlen(buf1) + 1; ret = job_dev_write_list(buffer_list, size_list, 2, (strlen(buf1) + strlen(buf2) + 1), 7, PINT_DEV_EXT_ALLOC, NULL, 0, &jstat, &tmp_id, context); if(ret < 0) { PVFS_perror("job_dev_write_list()", ret); return(-1); } if(ret == 0) { printf("no immed completion.\n"); ret = block_on_job(tmp_id, NULL, &jstat, context); if(ret < 0) { PVFS_perror("block_on_job()", ret); return(-1); } } else { printf("immed completion.\n"); } if(jstat.error_code != 0) { PVFS_perror("job_bmi_write_list() error code", jstat.error_code); return(-1); } job_close_context(context); job_finalize(); PINT_dev_finalize(); PINT_flow_finalize(); BMI_finalize(); return(0); }
int main(int argc, char **argv) { int ret = -1; struct ack_foo* ack = NULL; job_status_s status1; struct BMI_unexpected_info req_info; job_id_t job_id; int outcount; job_id_t tmp_id; job_context_id context; /* set debugging level */ gossip_enable_stderr(); gossip_set_debug_mask(0, 0); /* start the BMI interface */ ret = BMI_initialize("bmi_tcp", "tcp://NULL:3414", BMI_INIT_SERVER); if(ret < 0) { fprintf(stderr, "BMI_initialize failure.\n"); return(-1); } ret = trove_initialize( TROVE_METHOD_DBPF, NULL, "/tmp/pvfs2-test-space", 0); if(ret < 0) { fprintf(stderr, "trove_initialize failure.\n"); return(-1); } /* start the flow interface */ ret = PINT_flow_initialize("flowproto_multiqueue", 0); if(ret < 0) { fprintf(stderr, "flow_init failure.\n"); return(-1); } /* start the job interface */ ret = job_initialize(0); if(ret < 0) { fprintf(stderr, "job_initialize failure.\n"); return(-1); } ret = job_open_context(&context); if(ret < 0) { fprintf(stderr, "job_open_context() failure.\n"); return(-1); } /* post a job for unexpected receive */ ret = job_bmi_unexp(&req_info, NULL, 0, &status1, &job_id, 0, context); if(ret < 0) { fprintf(stderr, "job_bmi_unexp() failure.\n"); return(-1); } if(ret != 1) { #if 0 /* exercise testworld() interface, block indefinitely */ outcount = 1; ret = job_testworld(&job_id, &outcount, NULL, &status1, -1); if(ret < 0 || outcount == 0) { fprintf(stderr, "job_testworld() failure.\n"); return(-1); } /* alternatively, try out the testsome interface */ outcount = 1; ret = job_testsome(&job_id, &outcount, &foo, NULL, &status1, -1); if(ret < 0 || outcount == 0) { fprintf(stderr, "job_testsome() failure.\n"); return(-1); } #else /* ... or maybe even give job_test() a whirl */ ret = job_test(job_id, &outcount, NULL, &status1, 5000, context); if(ret < 0 || outcount == 0) { fprintf(stderr, "job_test() failure.\n"); return(-1); } #endif } /* check status */ if(status1.error_code != 0) { fprintf(stderr, "Bad status in unexp recv.\n"); return(-1); } /* allocate a buffer for the ack */ ack = BMI_memalloc(req_info.addr, sizeof(struct ack_foo), BMI_SEND); if(!ack) { fprintf(stderr, "BMI_memalloc failure.\n"); return(-1); } /* send a message */ ret = job_bmi_send(req_info.addr, ack, sizeof(struct ack_foo), 0, BMI_PRE_ALLOC, 0, NULL, 0, &status1, &tmp_id, context, JOB_TIMEOUT_INF, NULL); if(ret < 0) { fprintf(stderr, "job_bmi_send() failure.\n"); return(-1); } if(ret == 0) { int count = 0; ret = job_test(tmp_id, &count, NULL, &status1, -1, context); if(ret < 0) { fprintf(stderr, "job_test() failure.\n"); return(-1); } } /* check status */ if(status1.error_code != 0) { fprintf(stderr, "job failure.\n"); return(-1); } BMI_memfree(req_info.addr, ack, sizeof(struct ack_foo), BMI_RECV); BMI_unexpected_free(req_info.addr, req_info.buffer); /* shut down the interfaces */ job_close_context(context); job_finalize(); PINT_flow_finalize(); BMI_finalize(); trove_finalize(TROVE_METHOD_DBPF); return(0); }