Skip to content

Commit d7c6225

Browse files
committed
refactor(watcher): use prlimit64 to replace setrlimit
1 parent 4b5ef0a commit d7c6225

1 file changed

Lines changed: 10 additions & 10 deletions

File tree

unix/watcher_unix.cpp

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -160,24 +160,24 @@ auto main(int argc, char *argv[]) -> int {
160160
exit(RS_FAIL);
161161
}
162162

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

165165
if (memoryLimitMib > 0) {
166-
memlim = (rlimit){(rlim_t)actualMemoryRLimit, (rlim_t)actualMemoryRLimit};
167-
stalim = (rlimit){(rlim_t)actualMemoryRLimit, (rlim_t)actualMemoryRLimit};
166+
memlim = (rlimit64){(rlim64_t)actualMemoryRLimit, (rlim64_t)actualMemoryRLimit};
167+
stalim = (rlimit64){(rlim64_t)actualMemoryRLimit, (rlim64_t)actualMemoryRLimit};
168168
} else {
169169
// No memory limit specified, set to infinity
170-
memlim = (rlimit){RLIM_INFINITY, RLIM_INFINITY};
171-
stalim = (rlimit){(rlim_t)2147483647LL, (rlim_t)2147483647LL};
170+
memlim = (rlimit64){RLIM64_INFINITY, RLIM64_INFINITY};
171+
stalim = (rlimit64){(rlim64_t)2147483647LL, (rlim64_t)2147483647LL};
172172
}
173173

174174
// 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
175+
rlim64_t soft_time_limit_sec = (timeLimitMs + 999) / 1000;
176+
timlim = (rlimit64){soft_time_limit_sec, soft_time_limit_sec + 1}; // Soft limit + 1 for hard limit
177177

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

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

0 commit comments

Comments
 (0)