diff options
Diffstat (limited to 'libports/interrupt-rpcs.c')
-rw-r--r-- | libports/interrupt-rpcs.c | 8 |
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); |