Re: pthreads: shouldn't nanosleep() be a cancellation point ?

From: Daniel Eischen <deischen_at_freebsd.org>
Date: Tue, 2 Aug 2005 10:10:14 -0400 (EDT)
On Tue, 2 Aug 2005, Daniel Eischen wrote:

> On Tue, 2 Aug 2005, Poul-Henning Kamp wrote:
>
> >
> > Since sleep() is a cancellation point, shouldn't nanosleep() be as well ?
>
> nanosleep() is a cancellation point.  At least, that's the way it's
> coded and should work.  Note that _nanosleep() isn't.  By design, if
> libc is using _nanosleep() in places, then that wouldn't cause a
> cancellation point.
>
> > (this would also cover usleep())
>
> Hmm, is your real complaint that usleep() is not a cancellation point?
> usleep() should be a cancellation point, so you can fix it if you
> want (s/_nano/nano/ and remove the namespace stuff).

Hmm, the same could be said for sleep() in libc also, but we jump
through hoops to allow the thread libraries override sleep() with
their own cancellable version.  I think this is in case libc wants
to use sleep(), usleep(), nanosleep() internally and not introduce
cancellation points into functions that shouldn't have them.

-- 
DE
Received on Tue Aug 02 2005 - 12:10:20 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:38:40 UTC