
On Sunday 20 April 2008 15:07, Sebastian Redl wrote:
This is still too simple, unfortunately. Replacing the cleanup function is a good idea, but it's not enough to get around the limitations of this method. I played around with it all day today.
Yes, it needs to do something like create another copy of the exception_ptr which is deleted by the exception_cleanup function.
I'm currently trying my next play: I need more data reachable from the exception object, so I'm going to make it reachable. My plan is to let the cleanup function pointer point to a structure whose first bytes contain the code of a function that simply returns. In other words, I hide more data behind the cleanup function. Wish me luck. :-)
Another thing that's occurred to me is, are there license issues with boost-licensed code using internal interfaces in libsupc++? Maybe the best route is to just send a patch to the gcc people that implements exception_ptr as a gnu extension? That would also give you more freedom in your implementation choices. -- Frank