authorgravatar for johnnymarler@gmail.comJonathan Marler <johnnymarler@gmail.com> 2021-06-01 10:29:09-06:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2021-06-01 23:39:48-04:00
log99b6305aa89c6363b1220a780485803a66880cce
tree41e9d2ba163a38b0c53292bcdc5483d19b7c52f3
parentf6932472950e7dbb451d4cfef8e5f4a1cc506ac0

handle LimitToBig error on setrlimit


1 files changed, 2 insertions(+), 2 deletions(-)

lib/std/os.zig+2-2
...@@ -6121,7 +6121,7 @@ pub fn getrlimit(resource: rlimit_resource) GetrlimitError!rlimit {...@@ -6121,7 +6121,7 @@ pub fn getrlimit(resource: rlimit_resource) GetrlimitError!rlimit {
6121 }6121 }
6122}6122}
61236123
6124pub const SetrlimitError = error{PermissionDenied} || UnexpectedError;6124pub const SetrlimitError = error{PermissionDenied, LimitTooBig} || UnexpectedError;
61256125
6126pub fn setrlimit(resource: rlimit_resource, limits: rlimit) SetrlimitError!void {6126pub fn setrlimit(resource: rlimit_resource, limits: rlimit) SetrlimitError!void {
6127 const setrlimit_sym = if (builtin.os.tag == .linux and builtin.link_libc)6127 const setrlimit_sym = if (builtin.os.tag == .linux and builtin.link_libc)
...@@ -6132,7 +6132,7 @@ pub fn setrlimit(resource: rlimit_resource, limits: rlimit) SetrlimitError!void...@@ -6132,7 +6132,7 @@ pub fn setrlimit(resource: rlimit_resource, limits: rlimit) SetrlimitError!void
6132 switch (errno(setrlimit_sym(resource, &limits))) {6132 switch (errno(setrlimit_sym(resource, &limits))) {
6133 0 => return,6133 0 => return,
6134 EFAULT => unreachable, // bogus pointer6134 EFAULT => unreachable, // bogus pointer
6135 EINVAL => unreachable,6135 EINVAL => return error.LimitTooBig, // this could also mean "invalid resource", but that would be unreachable
6136 EPERM => return error.PermissionDenied,6136 EPERM => return error.PermissionDenied,
6137 else => |err| return unexpectedErrno(err),6137 else => |err| return unexpectedErrno(err),
6138 }6138 }