Re: Signal changes and {,sig}{set,long}jmp
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
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