A: 

I use similar exception handling using setjmp/longjmp and I have thread-local storage. For every new thread I call initialisation function that malloc's local jmpbuf for the thread.

NB! I never properly tested it in multithreading environment!

qrdl
+1  A: 

ReactOS has a SEH-clone called PSEH. ROS Newsletter #49 has a brief mention of it, and you can see how it's implemented in /include/crt/excpt.h, /include/reactos/lib/pseh/pseh2.h, etc. A bit of a messy-looking hack with macros and (currently x86-only) assembly, but it works.

That being said, signals+threading interactions are famously ugly on UNIX, so if your purpose for wanting SEH is to handle signals... I would suggest you find an alternate solution.

ephemient