Trying again: select() should be a cancellation point
Niall Douglas
s_sourceforge at nedprod.com
Sat Jan 29 06:31:54 PST 2005
As no one replied last time, here's this email again.
I've found that I cannot work around select() not being a
cancellation point on FreeBSD in my code - I had to #ifdef
__FreeBSD__ in a hack which manually calls pthread_testcancel() every
second. This is *nasty*!
If there's any alternative, I'd very much like to hear it. Preferably
I'd like to see select() made a cancellation point or a new form of
select() eg; select_tc() added.
Cheers,
Niall
> According to:
>
> http://lists.freebsd.org/pipermail/freebsd-threads/2004-
> October/002572.html
>
> ... it is. But v5.3 FreeBSD doesn't cancel during select(), nor
> during recv().
>
> OTOH I have other documentation which suggests that neither select() nor
> recv() are cancellation points.
>
> Oh and on Linux, both are cancellation points. In my mind it's
> probably more useful if they are cancellation points as you can
> always disable cancellation around them if necessary whereas the
> opposite is not true.
>
> Cheers,
> Niall
>
More information about the freebsd-threads
mailing list