Blame src/common/setrlim.c
|
Szabolcs Nagy |
814c6f |
#include <string.h>
|
|
Szabolcs Nagy |
814c6f |
#include <errno.h>
|
|
Szabolcs Nagy |
814c6f |
#include <sys/resource.h>
|
|
Szabolcs Nagy |
814c6f |
#include "test.h"
|
|
Szabolcs Nagy |
814c6f |
|
|
Szabolcs Nagy |
814c6f |
int t_setrlim(int r, long lim)
|
|
Szabolcs Nagy |
814c6f |
{
|
|
Szabolcs Nagy |
814c6f |
struct rlimit rl;
|
|
Szabolcs Nagy |
814c6f |
|
|
Szabolcs Nagy |
814c6f |
if (getrlimit(r, &rl)) {
|
|
Szabolcs Nagy |
814c6f |
t_error("getrlimit %d: %s\n", r, strerror(errno));
|
|
Szabolcs Nagy |
814c6f |
return -1;
|
|
Szabolcs Nagy |
814c6f |
}
|
|
Szabolcs Nagy |
814c6f |
if (lim > rl.rlim_max)
|
|
Szabolcs Nagy |
814c6f |
return -1;
|
|
Szabolcs Nagy |
814c6f |
if (lim == rl.rlim_max && lim == rl.rlim_cur)
|
|
Szabolcs Nagy |
814c6f |
return 0;
|
|
Szabolcs Nagy |
814c6f |
rl.rlim_max = lim;
|
|
Szabolcs Nagy |
814c6f |
rl.rlim_cur = lim;
|
|
Szabolcs Nagy |
814c6f |
if (setrlimit(r, &rl)) {
|
|
Szabolcs Nagy |
157cc4 |
t_error("setrlimit(%d, %ld): %s\n", r, lim, strerror(errno));
|
|
Szabolcs Nagy |
814c6f |
return -1;
|
|
Szabolcs Nagy |
814c6f |
}
|
|
Szabolcs Nagy |
814c6f |
return 0;
|
|
Szabolcs Nagy |
814c6f |
}
|
|
Szabolcs Nagy |
814c6f |
|