Skip to content

Commit 008318c

Browse files
committed
refactor: use prlimit64 to replace setrlimit/getrlimit
1 parent 24424a2 commit 008318c

1 file changed

Lines changed: 11 additions & 10 deletions

File tree

unix/watcher_unix.cpp

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
#include <sstream>
1515
#include <string>
1616
#include <sys/fcntl.h>
17+
#include <sys/prlimit.h>
1718
#include <sys/resource.h>
1819
#include <sys/time.h>
1920
#include <sys/types.h>
@@ -160,24 +161,24 @@ auto main(int argc, char *argv[]) -> int {
160161
exit(RS_FAIL);
161162
}
162163

163-
rlimit memlim{}, stalim{}, timlim{};
164+
rlimit64 memlim{}, stalim{}, timlim{};
164165

165166
if (memoryLimitMib > 0) {
166-
memlim = (rlimit){(rlim_t)actualMemoryRLimit, (rlim_t)actualMemoryRLimit};
167-
stalim = (rlimit){(rlim_t)actualMemoryRLimit, (rlim_t)actualMemoryRLimit};
167+
memlim = (rlimit64){(rlim64_t)actualMemoryRLimit, (rlim64_t)actualMemoryRLimit};
168+
stalim = (rlimit64){(rlim64_t)actualMemoryRLimit, (rlim64_t)actualMemoryRLimit};
168169
} else {
169170
// No memory limit specified, set to infinity
170-
memlim = (rlimit){RLIM_INFINITY, RLIM_INFINITY};
171-
stalim = (rlimit){(rlim_t)2147483647LL, (rlim_t)2147483647LL};
171+
memlim = (rlimit64){RLIM64_INFINITY, RLIM64_INFINITY};
172+
stalim = (rlimit64){(rlim64_t)2147483647LL, (rlim64_t)2147483647LL};
172173
}
173174

174175
// Calculate time limit in seconds, rounding up
175-
rlim_t soft_time_limit_sec = (timeLimitMs + 999) / 1000;
176-
timlim = (rlimit){soft_time_limit_sec, soft_time_limit_sec + 1}; // Soft limit + 1 for hard limit
176+
rlim64_t soft_time_limit_sec = (timeLimitMs + 999) / 1000;
177+
timlim = (rlimit64){soft_time_limit_sec, soft_time_limit_sec + 1}; // Soft limit + 1 for hard limit
177178

178-
setrlimit(RLIMIT_AS, &memlim);
179-
setrlimit(RLIMIT_STACK, &stalim);
180-
setrlimit(RLIMIT_CPU, &timlim);
179+
prlimit64(0, RLIMIT_AS, &memlim, nullptr);
180+
prlimit64(0, RLIMIT_STACK, &stalim, nullptr);
181+
prlimit64(0, RLIMIT_CPU, &timlim, nullptr);
181182

182183
if (execlp("bash", "bash", "-c", runCmd.c_str(), NULL) == -1) {
183184
perror("execlp");

0 commit comments

Comments
 (0)