diff options
author | Justus Winter <4winter@informatik.uni-hamburg.de> | 2015-09-16 19:41:14 +0200 |
---|---|---|
committer | Samuel Thibault <samuel.thibault@ens-lyon.org> | 2015-09-16 19:41:36 +0200 |
commit | bb95a72318e747ce8854e161cc590e67ac17f4f9 (patch) | |
tree | 2f0b0af6735b1fc4a90f6a4de6951a3afff0b79f /sysdeps/mach | |
parent | c88b3da93e4b6ff1dd8c6192e358aa60b98114dc (diff) | |
download | glibc-bb95a72318e747ce8854e161cc590e67ac17f4f9.tar.gz glibc-bb95a72318e747ce8854e161cc590e67ac17f4f9.tar.xz 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')
-rw-r--r-- | sysdeps/mach/hurd/dl-sysdep.c | 1 |
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_); } |