void slcfg_init_res(struct sl_resource *r) { struct resprof_mds_info *rpmi; struct sl_mds_peerinfo *sp; struct sl_mds_iosinfo *si; rpmi = res2rpmi(r); psc_mutex_init(&rpmi->rpmi_mutex); psc_waitq_init(&rpmi->rpmi_waitq, "rpmi"); if (r->res_type == SLREST_MDS) { rpmi->rpmi_info = sp = PSCALLOC(sizeof(*sp)); sp->sp_flags = SPF_NEED_JRNL_INIT; pfl_meter_init(&sp->sp_batchmeter, 0, "nsupd-%s", r->res_name); } else { rpmi->rpmi_info = si = PSCALLOC(sizeof(*si)); si->si_flags = SIF_NEED_JRNL_INIT; if (RES_ISFS(r)) pfl_meter_init(&si->si_batchmeter, 0, "reclaim-%s", r->res_name); if (r->res_flags & RESF_DISABLE_BIA) si->si_flags |= SIF_DISABLE_LEASE; } }
int main(void) { struct l_wait_info lwi; struct psc_waitq wq; int rc; psc_waitq_init(&wq); lwi = LWI_TIMEOUT(1, NULL, NULL); rc = psc_svr_wait_event(&wq, 0, &lwi, NULL); printf("rc=%d [ETIMEDOUT=%d, EINVAL=%d, EPERM=%d]\n%s\n", rc, ETIMEDOUT, EINVAL, EPERM, strerror(-rc)); return 0; }
int main(int argc, char *argv[]) { int c, i, rc = 0; progname = argv[0]; pfl_init(); while ((c = getopt(argc, argv, "n:i:")) != -1) switch (c) { case 'n': nthreads = atoi(optarg); break; case 'i': iterations = atoi(optarg); break; default: usage(); } argc -= optind; if (argc) usage(); psclog_debug("nthreads = %d", nthreads); psc_waitq_init(&waitq); for (i = 0; i < nthreads; i++) pscthr_init(0, child_main, NULL, 0, "thr%d", i); sleep(1); psc_waitq_wakeall(&waitq); sleep(2); i = nthreads * iterations; while (i--) { psc_waitq_wakeone(&waitq); usleep(30); } return rc; }