Make ppoll(2) and waitid(2) cancellation points

John Baldwin jhb at freebsd.org
Fri Apr 17 13:30:52 UTC 2015


On Friday, April 17, 2015 10:59:33 AM Konstantin Belousov wrote:
> Patch below makes ppoll(2) and waitid(2) cancellable.
> 
> The waitid(2) is required to be a cancellation point by POSIX, so the
> change fixes a definite bug. It is done by making wait6() cancellable,
> in line with the other wait*(2) syscalls.
> 
> For ppoll(2), our other select/poll interfaces are cancel points, i.e.
> select, pselect, and poll. It is reasonable for ppoll() to follow the
> suite.
> 
> The interposing table was extended at the end, instead of ordering new
> interposers by alphabet.  It would be acceptable, but makes it easier
> for people to run new libc with older libthr (although not supported).

Sounds good to me.

> diff --git a/lib/libc/sys/wait6.c b/lib/libc/sys/wait6.c
> new file mode 100644
> index 0000000..f0e2999
> --- /dev/null
> +++ b/lib/libc/sys/wait6.c
> @@ -0,0 +1,52 @@
> +/*
> + * Copyright (c) 2014 The FreeBSD Foundation.
> + * All rights reserved.

s/2014/2015/?

-- 
John Baldwin


More information about the freebsd-arch mailing list