- /* set address space limits */
- getrlimit(RLIMIT_AS,&lim);
- if (adjust_lim(&slr->vs_as, &lim)) {
- setrlimit(RLIMIT_AS, &lim);
- if (vc_set_rlimit(ctx, RLIMIT_AS, &slr->vs_as))
- {
- PERROR("pl_setrlimit(%u, RLIMIT_AS)", ctx);
- exit(1);
- }
- }
- /* set nrpoc limit */
- getrlimit(RLIMIT_NPROC,&lim);
- if (adjust_lim(&slr->vs_nproc, &lim)) {
- setrlimit(RLIMIT_NPROC, &lim);
- if (vc_set_rlimit(ctx, RLIMIT_NPROC, &slr->vs_nproc))
- {
- PERROR("pl_setrlimit(%u, RLIMIT_NPROC)", ctx);
- exit(1);
- }
- }
-
- /* set openfd limit */
- getrlimit(RLIMIT_NOFILE,&lim);
- if (adjust_lim(&slr->vs_openfd, &lim)) {
- setrlimit(RLIMIT_NOFILE, &lim);
- if (vc_set_rlimit(ctx, RLIMIT_NOFILE, &slr->vs_openfd))
- {
- PERROR("pl_setrlimit(%u, RLIMIT_NOFILE)", ctx);
- exit(1);
- }
- if (vc_set_rlimit(ctx, VC_VLIMIT_OPENFD, &slr->vs_openfd))
- {
- PERROR("pl_setrlimit(%u, VLIMIT_OPENFD)", ctx);
- exit(1);
- }
- }
- vs_cpu = slr->vs_cpu;
- cpu_sched_flags = slr->vs_cpuguaranteed & VS_SCHED_CPU_GUARANTEED;
- } else {
- vs_cpu = 1;
- cpu_sched_flags = 0;
- }
-
- if (pl_setsched(ctx, vs_cpu, cpu_sched_flags) < 0) {
- PERROR("pl_setsched(&u)", ctx);
- exit(1);
- }
+ set_one_ulimit(RLIMIT_RSS, &slr->vs_rss);
+ set_one_ulimit(RLIMIT_AS, &slr->vs_as);
+ set_one_ulimit(RLIMIT_NPROC, &slr->vs_nproc);
+ set_one_ulimit(RLIMIT_NOFILE, &slr->vs_openfd);