|
|
@@ -25,7 +25,7 @@ const char *last_limit_err;
|
|
|
int setResLimit(struct Runobj *runobj) {
|
|
|
#define RAISE_EXIT(err) {last_limit_err = err;return -1;}
|
|
|
struct rlimit rl;
|
|
|
- /*struct itimerval p_realt;*/
|
|
|
+ struct itimerval p_realt;
|
|
|
|
|
|
rl.rlim_cur = runobj->time_limit / 1000 + 1;
|
|
|
if (runobj->time_limit % 1000 > 800) {
|
|
|
@@ -35,7 +35,7 @@ int setResLimit(struct Runobj *runobj) {
|
|
|
if (setrlimit(RLIMIT_CPU, &rl))
|
|
|
RAISE_EXIT("set RLIMIT_CPU failure");
|
|
|
|
|
|
- rl.rlim_cur = runobj->memory_limit * 1024;
|
|
|
+ /*rl.rlim_cur = runobj->memory_limit * 1024;
|
|
|
rl.rlim_max = rl.rlim_cur + 1024;
|
|
|
if (setrlimit(RLIMIT_DATA, &rl))
|
|
|
RAISE_EXIT("set RLIMIT_DATA failure");
|
|
|
@@ -43,19 +43,19 @@ int setResLimit(struct Runobj *runobj) {
|
|
|
rl.rlim_cur = runobj->memory_limit * 1024 * 2;
|
|
|
rl.rlim_max = rl.rlim_cur + 1024;
|
|
|
if (setrlimit(RLIMIT_AS, &rl))
|
|
|
- RAISE_EXIT("set RLIMIT_AS failure");
|
|
|
+ RAISE_EXIT("set RLIMIT_AS failure");*/
|
|
|
|
|
|
rl.rlim_cur = 256 * 1024 * 1024;
|
|
|
rl.rlim_max = rl.rlim_cur + 1024;
|
|
|
if (setrlimit(RLIMIT_STACK, &rl))
|
|
|
RAISE_EXIT("set RLIMIT_STACK failure");
|
|
|
|
|
|
- /*
|
|
|
+
|
|
|
p_realt.it_interval.tv_sec = runobj->time_limit / 1000 + 3;
|
|
|
p_realt.it_interval.tv_usec = 0;
|
|
|
p_realt.it_value = p_realt.it_interval;
|
|
|
if (setitimer(ITIMER_REAL, &p_realt, (struct itimerval *) 0) == -1)
|
|
|
- RAISE_EXIT("set ITIMER_REAL failure");*/
|
|
|
+ RAISE_EXIT("set ITIMER_REAL failure");
|
|
|
|
|
|
return 0;
|
|
|
}
|