aboutsummaryrefslogtreecommitdiff
path: root/sysdeps/mach/hurd/dl-sysdep.c
diff options
context:
space:
mode:
authorJustus Winter <4winter@informatik.uni-hamburg.de>2015-09-16 19:41:14 +0200
committerSamuel Thibault <samuel.thibault@ens-lyon.org>2015-09-16 19:41:36 +0200
commitbb95a72318e747ce8854e161cc590e67ac17f4f9 (patch)
tree2f0b0af6735b1fc4a90f6a4de6951a3afff0b79f /sysdeps/mach/hurd/dl-sysdep.c
parentc88b3da93e4b6ff1dd8c6192e358aa60b98114dc (diff)
downloadglibc-bb95a72318e747ce8854e161cc590e67ac17f4f9.tar
glibc-bb95a72318e747ce8854e161cc590e67ac17f4f9.tar.gz
glibc-bb95a72318e747ce8854e161cc590e67ac17f4f9.tar.bz2
glibc-bb95a72318e747ce8854e161cc590e67ac17f4f9.zip
Cache the host port like we cache the task port
This way we do not need to call the kernel just to get the port. Furthermore, we no longer increase the reference count on every invocation of `mach_host_self'. * mach/mach/mach_traps.h (__mach_host_self, mach_host_self): Protect declarations against the macro expansion. * mach/mach_init.c (__mach_host_self_): New variable. (mach_init): Initialize `__mach_host_self_'. * mach/mach_init.h (__mach_host_self_): New declaration. (__mach_host_self, mach_host_self): New macros. * sysdeps/mach/hurd/dl-sysdep.c (_dl_sysdep_start_cleanup): Release reference.
Diffstat (limited to 'sysdeps/mach/hurd/dl-sysdep.c')
-rw-r--r--sysdeps/mach/hurd/dl-sysdep.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/sysdeps/mach/hurd/dl-sysdep.c b/sysdeps/mach/hurd/dl-sysdep.c
index 8bb9fad090..317605b425 100644
--- a/sysdeps/mach/hurd/dl-sysdep.c
+++ b/sysdeps/mach/hurd/dl-sysdep.c
@@ -279,6 +279,7 @@ _dl_sysdep_start_cleanup (void)
__mach_init. We are done with them now, and the user will
reacquire them for himself when he wants them. */
__mig_dealloc_reply_port (MACH_PORT_NULL);
+ __mach_port_deallocate (__mach_task_self (), __mach_host_self_);
__mach_port_deallocate (__mach_task_self (), __mach_task_self_);
}