summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoralc <alc@FreeBSD.org>2001-12-30 18:55:09 +0000
committeralc <alc@FreeBSD.org>2001-12-30 18:55:09 +0000
commitd6b2b755937c08b6aff0febe953fde2ed01f32c0 (patch)
tree253274e16b704b6b62881414e98a72022b8e22d3
parent56c642c621e422931f63457c4d6b1da1762c85a0 (diff)
downloadFreeBSD-src-d6b2b755937c08b6aff0febe953fde2ed01f32c0.zip
FreeBSD-src-d6b2b755937c08b6aff0febe953fde2ed01f32c0.tar.gz
Eliminate semexit_hook using at_exit(9) and rm_at_exit(9).
Reviewed by: alfred
-rw-r--r--sys/kern/kern_exit.c5
-rw-r--r--sys/kern/sysv_ipc.c12
-rw-r--r--sys/kern/sysv_sem.c4
-rw-r--r--sys/sys/ipc.h1
4 files changed, 2 insertions, 20 deletions
diff --git a/sys/kern/kern_exit.c b/sys/kern/kern_exit.c
index c41fec6..d772be6 100644
--- a/sys/kern/kern_exit.c
+++ b/sys/kern/kern_exit.c
@@ -209,11 +209,6 @@ exit1(td, rv)
}
PROC_UNLOCK(p->p_leader);
- /*
- * XXX Shutdown SYSV semaphores
- */
- semexit(p);
-
/* The next two chunks should probably be moved to vmspace_exit. */
vm = p->p_vmspace;
/*
diff --git a/sys/kern/sysv_ipc.c b/sys/kern/sysv_ipc.c
index b6e753e..cfd29be 100644
--- a/sys/kern/sysv_ipc.c
+++ b/sys/kern/sysv_ipc.c
@@ -41,21 +41,9 @@
#include <sys/proc.h>
#include <sys/ucred.h>
-void (*semexit_hook)(struct proc *) = NULL;
void (*shmfork_hook)(struct proc *, struct proc *) = NULL;
void (*shmexit_hook)(struct proc *) = NULL;
-/* called from kern_exit.c */
-void
-semexit(p)
- struct proc *p;
-{
-
- if (semexit_hook != NULL)
- semexit_hook(p);
- return;
-}
-
/* called from kern_fork.c */
void
shmfork(p1, p2)
diff --git a/sys/kern/sysv_sem.c b/sys/kern/sysv_sem.c
index ed99f57..56bd842 100644
--- a/sys/kern/sysv_sem.c
+++ b/sys/kern/sysv_sem.c
@@ -202,7 +202,7 @@ seminit(void)
suptr->un_proc = NULL;
}
semu_list = NULL;
- semexit_hook = &semexit_myhook;
+ at_exit(semexit_myhook);
}
static int
@@ -215,7 +215,7 @@ semunload(void)
free(sem, M_SEM);
free(sema, M_SEM);
free(semu, M_SEM);
- semexit_hook = NULL;
+ rm_at_exit(semexit_myhook);
return (0);
}
diff --git a/sys/sys/ipc.h b/sys/sys/ipc.h
index 7ca8b9d..9d748de 100644
--- a/sys/sys/ipc.h
+++ b/sys/sys/ipc.h
@@ -87,7 +87,6 @@ struct thread;
struct proc;
int ipcperm __P((struct thread *, struct ipc_perm *, int));
-extern void (*semexit_hook)(struct proc *);
extern void (*shmfork_hook)(struct proc *, struct proc *);
extern void (*shmexit_hook)(struct proc *);
OpenPOWER on IntegriCloud