diff options
author | Mark Kettenis <kettenis@gnu.org> | 2000-07-25 22:34:00 +0000 |
---|---|---|
committer | Mark Kettenis <kettenis@gnu.org> | 2000-07-25 22:34:00 +0000 |
commit | 317f76798849bac85c692c76475a85be0f592dab (patch) | |
tree | f09c11fd774304e88b76666753c3379c44a0c97a /libports/inhibit-class-rpcs.c | |
parent | 3296b371bab2a87359323a405ed1fa51a00397c9 (diff) | |
download | hurd-317f76798849bac85c692c76475a85be0f592dab.tar.gz hurd-317f76798849bac85c692c76475a85be0f592dab.tar.bz2 hurd-317f76798849bac85c692c76475a85be0f592dab.zip |
* inhibit-all-rpcs.c (ports_inhibit_all_rpcs): Avoid calling
hurd_thread_cancel on the current thread.
* inhibit-class-rpcs.c (ports_inhibit_class_rpcs): Likewise.
* inhibit-bucket-rpcs.c (ports_inhibit_bucket_rpcs): Likewise.
* inhibit-port-rpcs.c (ports_inhibit_port_rpcs): Likewise.
Diffstat (limited to 'libports/inhibit-class-rpcs.c')
-rw-r--r-- | libports/inhibit-class-rpcs.c | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/libports/inhibit-class-rpcs.c b/libports/inhibit-class-rpcs.c index 00b9b361..951de4bf 100644 --- a/libports/inhibit-class-rpcs.c +++ b/libports/inhibit-class-rpcs.c @@ -1,5 +1,5 @@ /* - Copyright (C) 1995, 1996 Free Software Foundation, Inc. + Copyright (C) 1995, 1996, 2000 Free Software Foundation, Inc. Written by Michael I. Bushnell. This file is part of the GNU Hurd. @@ -39,8 +39,13 @@ ports_inhibit_class_rpcs (struct port_class *class) for (pi = class->ports; pi; pi = pi->next) for (rpc = pi->current_rpcs; rpc; rpc = rpc->next) - if (hurd_thread_cancel (rpc->thread) == EINTR) - this_one = 1; + { + /* Avoid cancelling the calling thread. */ + if (rpc->thread == hurd_thread_self ()) + this_one = 1; + else + hurd_thread_cancel (rpc->thread); + } while (class->rpcs > this_one) { |