summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--proc/ChangeLog5
-rw-r--r--proc/msg.c7
2 files changed, 12 insertions, 0 deletions
diff --git a/proc/ChangeLog b/proc/ChangeLog
index a0285944..e3f02daf 100644
--- a/proc/ChangeLog
+++ b/proc/ChangeLog
@@ -1,3 +1,8 @@
+Fri Jul 19 18:22:46 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
+
+ * msg.c (S_proc_setmsgport): Bother to request DEAD_NAME
+ notification on new message port being installed.
+
Thu Jul 18 13:23:51 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
* msg.c (S_proc_setmsgport): Use MOVE_SEND, not COPY_SEND, to
diff --git a/proc/msg.c b/proc/msg.c
index 701fa149..be40e1f5 100644
--- a/proc/msg.c
+++ b/proc/msg.c
@@ -50,6 +50,7 @@ S_proc_setmsgport (struct proc *p,
mach_port_t *oldmsgport,
mach_msg_type_name_t *oldmsgport_type)
{
+ mach_port_t foo;
if (!p)
return EOPNOTSUPP;
@@ -62,6 +63,12 @@ S_proc_setmsgport (struct proc *p,
prociterate (check_message_return, p);
p->p_checkmsghangs = 0;
+ mach_port_request_notification (mach_task_self (), msgport,
+ MACH_NOTIFY_DEAD_NAME, 1, p->p_pi.port_right,
+ MACH_MSG_TYPE_MAKE_SEND_ONCE, &foo);
+ if (foo)
+ mach_port_deallocate (mach_task_self (), foo);
+
if (p == startup_proc)
/* Init is single threaded, so we can't delay our reply for
the essential task RPC; spawn a thread to do it. */