Exceptions via setjmp/longjmp in kernel.

2003-01-09 Thread Pawel Jakub Dawidek
Hello hackers... I got strange problem when trying to implement something like exceptions with setjmp()/longjmp() functions. [...] int ret; jmpbuf buf; [...] ret = setjmp(buf); KASSERT(ret != 1, (I never return 1 with longjmp().)); [...]

Re: Exceptions via setjmp/longjmp in kernel.

2003-01-09 Thread Stefan Farfeleder
On Thu, Jan 09, 2003 at 03:30:59PM +0100, Pawel Jakub Dawidek wrote: I got strange problem when trying to implement something like exceptions with setjmp()/longjmp() functions. [...] int ret; jmpbuf buf; [...] ret = setjmp(buf); KASSERT(ret != 1, (I

Re: Exceptions via setjmp/longjmp in kernel.

2003-01-09 Thread Jake Burkholder
Apparently, On Thu, Jan 09, 2003 at 03:30:59PM +0100, Pawel Jakub Dawidek said words to the effect of; Hello hackers... I got strange problem when trying to implement something like exceptions with setjmp()/longjmp() functions. [...] int ret; jmpbuf buf;

Re: Exceptions via setjmp/longjmp in kernel.

2003-01-09 Thread Pawel Jakub Dawidek
On Thu, Jan 09, 2003 at 11:03:55AM -0500, Jake Burkholder wrote: + The kernel longjmp only ever seems to return 1. See i386/i386/support.s. That's right, thanks! But this is strange, setjmp/longjmp are defined in C99 and there setjmp() returns value from longjmp(). -- Pawel Jakub Dawidek UNIX

Re: Exceptions via setjmp/longjmp in kernel.

2003-01-09 Thread Erik Trulsson
On Thu, Jan 09, 2003 at 05:25:20PM +0100, Pawel Jakub Dawidek wrote: On Thu, Jan 09, 2003 at 11:03:55AM -0500, Jake Burkholder wrote: + The kernel longjmp only ever seems to return 1. See i386/i386/support.s. That's right, thanks! But this is strange, setjmp/longjmp are defined in C99 and

Re: Exceptions via setjmp/longjmp in kernel.

2003-01-09 Thread Julian Elischer
how do you ensure that the thread doesn't own any locks when it does the longjmp? On Thu, 9 Jan 2003, Pawel Jakub Dawidek wrote: Hello hackers... I got strange problem when trying to implement something like exceptions with setjmp()/longjmp() functions. [...] int ret;

Re: Exceptions via setjmp/longjmp in kernel.

2003-01-09 Thread Pawel Jakub Dawidek
On Thu, Jan 09, 2003 at 10:51:13AM -0800, Julian Elischer wrote: + how do you ensure that the thread doesn't own any locks when it does the + longjmp? Hmm, hard to explain. I got my own infrastructure for this and every locks that are done I got in my-threads, so I just have to check those thread