diff options
| author | 2019-06-21 09:39:48 +0000 | |
|---|---|---|
| committer | 2019-06-21 09:39:48 +0000 | |
| commit | edc99bcd885f4004d6cffdbe82f15aa2eb27ee9c (patch) | |
| tree | 90a5c776fe52a9672304a33b0ce308c3c1f7763f /sys/kern/kern_sig.c | |
| parent | Use timeout_add_msec(9) (diff) | |
| download | wireguard-openbsd-edc99bcd885f4004d6cffdbe82f15aa2eb27ee9c.tar.xz wireguard-openbsd-edc99bcd885f4004d6cffdbe82f15aa2eb27ee9c.zip | |
Make resource limit access MP-safe. So far, the copy-on-write sharing
of resource limit structs has been done between processes. By applying
copy-on-write also between threads, threads can read rlimits in
a nearly lock-free manner.
Inspired by code in DragonFly BSD and FreeBSD.
OK mpi@, agreement from jmatthew@ and anton@
Diffstat (limited to 'sys/kern/kern_sig.c')
| -rw-r--r-- | sys/kern/kern_sig.c | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/sys/kern/kern_sig.c b/sys/kern/kern_sig.c index 4e3efa9c736..5738cd71af1 100644 --- a/sys/kern/kern_sig.c +++ b/sys/kern/kern_sig.c @@ -1,4 +1,4 @@ -/* $OpenBSD: kern_sig.c,v 1.230 2019/05/13 19:21:31 bluhm Exp $ */ +/* $OpenBSD: kern_sig.c,v 1.231 2019/06/21 09:39:48 visa Exp $ */ /* $NetBSD: kern_sig.c,v 1.54 1996/04/22 01:38:32 christos Exp $ */ /* @@ -1548,8 +1548,7 @@ coredump(struct proc *p) } /* Don't dump if will exceed file size limit. */ - if (USPACE + ptoa(vm->vm_dsize + vm->vm_ssize) >= - p->p_rlimit[RLIMIT_CORE].rlim_cur) + if (USPACE + ptoa(vm->vm_dsize + vm->vm_ssize) >= lim_cur(RLIMIT_CORE)) return (EFBIG); if (incrash && nosuidcoredump == 3) { |
