mirror of
https://sourceware.org/git/glibc.git
synced 2024-11-22 04:50:07 +00:00
* hurd/thread-cancel.c (hurd_thread_cancel): When cancelling the calling thread, set the cancellation flag and return success instead of EINTR.
2000-07-25 Mark Kettenis <kettenis@gnu.org> * hurd/thread-cancel.c (hurd_thread_cancel): When cancelling the calling thread, set the cancellation flag and return success instead of EINTR.
This commit is contained in:
parent
a3b231b751
commit
2d3d740b6f
@ -1,3 +1,9 @@
|
|||||||
|
2000-07-25 Mark Kettenis <kettenis@gnu.org>
|
||||||
|
|
||||||
|
* hurd/thread-cancel.c (hurd_thread_cancel): When cancelling the
|
||||||
|
calling thread, set the cancellation flag and return success
|
||||||
|
instead of EINTR.
|
||||||
|
|
||||||
2000-07-25 Ulrich Drepper <drepper@redhat.com>
|
2000-07-25 Ulrich Drepper <drepper@redhat.com>
|
||||||
|
|
||||||
* libio/Makefile: Add rules build, run, and distribute tst-widetext.c.
|
* libio/Makefile: Add rules build, run, and distribute tst-widetext.c.
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/* Thread cancellation support.
|
/* Thread cancellation support.
|
||||||
Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
|
Copyright (C) 1995, 1996, 1997, 2000 Free Software Foundation, Inc.
|
||||||
This file is part of the GNU C Library.
|
This file is part of the GNU C Library.
|
||||||
|
|
||||||
The GNU C Library is free software; you can redistribute it and/or
|
The GNU C Library is free software; you can redistribute it and/or
|
||||||
@ -43,7 +43,14 @@ hurd_thread_cancel (thread_t thread)
|
|||||||
if (! ss)
|
if (! ss)
|
||||||
return EINVAL;
|
return EINVAL;
|
||||||
if (ss == _hurd_self_sigstate ())
|
if (ss == _hurd_self_sigstate ())
|
||||||
return EINTR; /* Bozo. */
|
{
|
||||||
|
/* We are cancelling ourselves, so it is easy to succeed
|
||||||
|
quickly. Since this function is not a cancellation point, we
|
||||||
|
just leave the flag set pending the next cancellation point
|
||||||
|
(hurd_check_cancel or RPC) and return success. */
|
||||||
|
ss->cancel = 1;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
assert (! __spin_lock_locked (&ss->critical_section_lock));
|
assert (! __spin_lock_locked (&ss->critical_section_lock));
|
||||||
__spin_lock (&ss->critical_section_lock);
|
__spin_lock (&ss->critical_section_lock);
|
||||||
|
Loading…
Reference in New Issue
Block a user