Skip site navigation (1)Skip section navigation (2)
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>