aboutsummaryrefslogtreecommitdiff
path: root/libports/interrupt-rpcs.c
diff options
context:
space:
mode:
Diffstat (limited to 'libports/interrupt-rpcs.c')
-rw-r--r--libports/interrupt-rpcs.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/libports/interrupt-rpcs.c b/libports/interrupt-rpcs.c
index 42f51a5e..70175480 100644
--- a/libports/interrupt-rpcs.c
+++ b/libports/interrupt-rpcs.c
@@ -26,13 +26,17 @@ ports_interrupt_rpcs (void *portstruct)
{
struct port_info *pi = portstruct;
struct rpc_info *rpc;
+ thread_t self = hurd_thread_self ();
pthread_mutex_lock (&_ports_lock);
for (rpc = pi->current_rpcs; rpc; rpc = rpc->next)
{
- hurd_thread_cancel (rpc->thread);
- _ports_record_interruption (rpc);
+ if (rpc->thread != self)
+ {
+ hurd_thread_cancel (rpc->thread);
+ _ports_record_interruption (rpc);
+ }
}
pthread_mutex_unlock (&_ports_lock);