diff options
Diffstat (limited to 'libports/manage-one-thread.c')
-rw-r--r-- | libports/manage-one-thread.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/libports/manage-one-thread.c b/libports/manage-one-thread.c index b920338f..d410c1b3 100644 --- a/libports/manage-one-thread.c +++ b/libports/manage-one-thread.c @@ -18,6 +18,8 @@ along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ +#include <hurd/introspection.h> + #include "ports.h" void @@ -80,6 +82,10 @@ ports_manage_port_operations_one_thread (struct port_bucket *bucket, if (pi) { + mach_port_t trace_port = pi->class->trace_port; + if (__builtin_expect (MACH_PORT_VALID (trace_port), 0)) + introspection_trace_message (trace_port, inp); + err = ports_begin_rpc (pi, inp->msgh_id, &link); if (err) { @@ -96,6 +102,10 @@ ports_manage_port_operations_one_thread (struct port_bucket *bucket, ports_end_rpc (pi, &link); } ports_port_deref (pi); + + if (__builtin_expect (MACH_PORT_VALID (trace_port), 0) + && outp->RetCode != MIG_NO_REPLY) + introspection_trace_message (trace_port, outp); } else { |