Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 21 Jun 2004 10:36:04 -0400 (EDT)
From:      Daniel Eischen <eischen@vigrid.com>
To:        Sean McNeil <sean@mcneil.com>
Cc:        freebsd-threads@freebsd.org
Subject:   Re: kill(pid,0) sends a signal or not?
Message-ID:  <Pine.GSO.4.10.10406211032360.28158-100000@pcnet5.pcnet.com>
In-Reply-To: <1087794678.46146.4.camel@server.mcneil.com>

next in thread | previous in thread | raw e-mail | index | archive | help
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



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.GSO.4.10.10406211032360.28158-100000>