diff options
-rw-r--r-- | sys/kern/kern_exit.c | 5 | ||||
-rw-r--r-- | sys/kern/sysv_ipc.c | 12 | ||||
-rw-r--r-- | sys/kern/sysv_sem.c | 4 | ||||
-rw-r--r-- | sys/sys/ipc.h | 1 |
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 *); |