kill(pid,0) sends a signal or not?
Daniel Eischen
eischen at vigrid.com
Mon Jun 21 14:36:08 GMT 2004
On Sun, 20 Jun 2004, Sean McNeil wrote:
> I'm trying to trace down an issue with kse threads and firefox. There
> is an odd "trick" I haven't seen before:
>
> // kill(pid,0) is a neat trick to check if a
> // process exists
> if (kill(pid, 0) == 0 || errno != ESRCH)
>
> Does this really work? It is kind of odd that it I appear to get a
> signal (if the traceback is accurate) with the signal set to 0:
>
> #10 0x0000000202bc7a80 in thr_resume_wrapper (sig=0, siginfo=0x4,
> ucp=0x7fffffffd4c0) at /usr/src/lib/libpthread/thread/thr_kern.c:1112
>
> This later causes a sig 11 and the program core dumps.
>
> Any info on how threads are suppose to behave when a process does a
> kill(pid,0) would be greatly appreciated.
kill(pid, 0) shouldn't result in a signal. libpthread doesn't do
anything with kill() and the kernel shouldn't cause a signal for 0
either. What does ktrace show?
--
Dan Eischen
More information about the freebsd-threads
mailing list