Date: Thu, 16 Sep 2004 18:58:50 -0400 (EDT) From: Daniel Eischen <deischen@freebsd.org> To: David Xu <davidxu@freebsd.org> Cc: freebsd-threads@freebsd.org Subject: Re: SIGILL @ pthread_create() after execv -FIXED- Message-ID: <Pine.GSO.4.43.0409161857200.25588-100000@sea.ntplx.net> In-Reply-To: <414A17C8.30703@freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On Fri, 17 Sep 2004, David Xu wrote: > Julian Elischer wrote: > > > Ick. > > > > > > Joost Bekkers wrote: > > > >> Celebrated too soon.... > >> > >> Signals are not being delivered to the process after it did > >> its execv. > >> > >> The only signal that seems to be working is KILL (-9) > >> > > > > the man page is: (for execve) > > Signals set to be ignored in the calling process are set to be > > ignored in > > the new process. Signals which are set to be caught in the calling > > process image are set to default action in the new process image. > > Blocked signals remain blocked regardless of changes to the signal > > action. The signal stack is reset to be undefined (see > > sigaction(2) for > > more information). > > > > so we need to keep track of all signals accepted by the process (which > > is an > > OR of the signals accepted by all the threads) and set it back to that > > state > > regardless of what thread is doing the exit. > > (yuck that is quite a difficult question) I wonder if the "signal > > gatherring thread" > > has that info? > > > > Maybe if the signal thread exits it should look to see if the process > > is exec/exiting > > (by looking at the thread_single mode) and transfer its mask to teh > > 'survicor' thread? > > > > David? > > > I think this becauses the M:N thread masks all signals except SIGSTOP > and SIGKILL, > the real signal mask in userland needs to be set back to kernel, > libpthread should > provide a wrapper for execv syscall, Dan? fix me if I am wrong. We do that in fork(). Is execv() not being done after a fork()? -- Dan Eischen
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.GSO.4.43.0409161857200.25588-100000>