Re: Signal changes and {,sig}{set,long}jmp

1999-09-07 Thread Marcel Moolenaar

Peter Wemm wrote:
 
 Before getting too far here, can we consider some other standard interfaces?
 
  #include ucontext.h
 
  int getcontext(ucontext_t *ucp);
  int setcontext(const ucontext_t *ucp);
  void makecontext(ucontext_t *ucp, (void *func)(), int argc, ...);
  int swapcontext(ucontext_t *oucp, const ucontext_t *ucp);
 
 http://www.opengroup.org/onlinepubs/007908799/xsh/ucontext.h.html
 
 setjmp,longjmp,sigreturn,etc can all be done with this interface and it can
 be used for libc_r and future kernel-assisted threading.

We're at a point where the discussion, altough meaningful and important,
has no direct impact on the sigset_t change. I agree with Peter that we
should as well consider the ucontext interface, but prefer to stay focussed
on changing sigset_t. So, here's where I shut up and let you discuss the
matter further :-)

FYI: I have reimplemented {sig|_}?{set|long}jmp to use the new sigset_t and
all works well. It's not really important for me at this time how these
functions are eventually implemented. For now I'm at least able to fix
userland code.

-- 
Marcel Moolenaarmailto:[EMAIL PROTECTED]
SCC Internetworking  Databases   http://www.scc.nl/
The FreeBSD projectmailto:[EMAIL PROTECTED]


To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message



Signal changes and {,sig}{set,long}jmp

1999-09-06 Thread Garrett Wollman

On Mon, 06 Sep 1999 19:34:06 +0200, Marcel Moolenaar [EMAIL PROTECTED] said:

 The setjump/longjump family of functions are userland function
 AFAICT.

POSIX doesn't make any such distinction.  Remember that setjmp/longjmp
*already* enter the kernel, in order to save/restore the signal mask,
so there isn't any real performance penalty!  (Programs which need a
cheaper version already have to use _{set,long}jmp, which doesn't play
with the signal mask.)

 this issue is basicly independent of the sigset_t change.

Not entirely.  If we are going to be making substantial changes in the
internals of the Standard Library, then it makes more sense to put all
of the changes together.  If we're already changing sizeof(jmp_buf)
and sizeof(struct sigcontext), then at a minimum it makes sense to
have them be the same shape (which as I mentioned could simplify the
thread scheduler).

-GAWollman

--
Garrett A. Wollman   | O Siem / We are all family / O Siem / We're all the same
[EMAIL PROTECTED]  | O Siem / The fires of freedom 
Opinions not those of| Dance in the burning flame
MIT, LCS, CRS, or NSA| - Susan Aglukark and Chad Irschick


To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message