From: Caspar Z. <ca...@ca...> - 2012-03-09 09:00:31
|
On 03/09/2012 03:19 PM, Garrett Cooper wrote: > On Mar 8, 2012, at 9:28 PM, Caspar Zhang wrote: > >> >> in negative case: >> >> QUICK_TEST(sched_getaffinity(getpid()+1, len, mask)); >> >> sometimes getpid()+1 will exist if there're other processes running. >> This patch uses a different way to make sure the required pid doesn't >> exist by forking a child and terminating it. The pid of the terminated >> child will not be used for a short time and it's enough for the test to >> continue. > > pid_t is signed on FreeBSD and Linux, so it's safe to assume that a pid of -1 won't work. It all depends on what you're trying to achieve (the EINVAL or the ESRCH requirement). > Testing to make sure that a pid isn't running via kill(pid, 0) is another semi-viable method, but it's also racy. > Cheers, > -Garrett I'll keep your test case and remove the getpid()+1 one. Thanks, Caspar |