Date: Thu, 21 Jun 2001 13:10:42 -0400 From: "Louis-Philippe Gagnon" <louisphilippe@macadamian.com> To: "Alfred Perlstein" <bright@sneakerz.org> Cc: <freebsd-hackers@FreeBSD.ORG> Subject: Re: pthread/longjmp/signal problem Message-ID: <0e5801c0fa75$1a6ccef0$2964a8c0@macadamian.com> References: <0db001c0fa62$2b567800$2964a8c0@macadamian.com> <20010621115423.U4543@sneakerz.org>
next in thread | previous in thread | raw e-mail | index | archive | help
[snip]
>
> ERRORS
> If the contents of the env are corrupted, or correspond to an
environment
> that has already returned, the longjmp() routine calls the routine
I interpreted that as referring to the case when we longjmp after the
_function_ that called setjmp has returned, but yes, "resetjmping" is
probably safer.
> longjmperror(3). If longjmperror() returns the program is aborted
(see
> abort(3)). The default version of longjmperror() prints the message
> ``longjmp botch'' to standard error and returns. User programs
wishing
> to exit more gracefully should write their own versions of
> longjmperror().
>
> > So the questions are :
> > -Am I doing something obviously wrong?
>
> I think so, I think you must reinit the 'env' like so:
>
> reset:
> if(sigsetjmp(env,1)) {
> fprintf(stderr,"longjmp successful\n");
> goto reset;
> }
>
Yes, I forgot to mention that in the things I tried. (since I never even get
to the second longjmp() call, I dismissed that as a factor pretty early on)
>
>
> > -Is this a bug?
>
> I think so, even with reinitializing the env structure it still hangs
> for me as well:
>
[snip]
>
> > -Is this a known bug with a known workaround?
>
> Not that I know of, I'll take a peek at the threading libraries, but
> I'm not promising anything.
>
Thanks! "anything" is probably more than I could find on my own...
if it's a bug, it seems like a big one... I found it hard to believe that no
one would have hit it yet (as I mentionned, I get the problem in both 4.2
and 4.3...)
LPG
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-hackers" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?0e5801c0fa75$1a6ccef0$2964a8c0>
