Re: [cxx-abi-dev] ABI modification for exception propagation
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [cxx-abi-dev] ABI modification for exception propagation



>From: Sebastian Redl <sebastian.redl@xxxxxxxxxxxxxx>
>__cxa_end_catch has modified behaviour:
>* It locates the most recently caught exception and decrements its handler
>count.

This now has to be atomic since threaded, right?
Or is this still local to the thread but the next is atomic?

>* If the handler count goes down to zero, and the exception was not
>re-thrown by throw, it locates the primary exception (which may be the
>same as the one it's handling) and decrements its reference count.

Ok, this needs to be atomic.

>2.7 Exception Propagation
>exception_ptr is a smart pointer.  Its only member is a pointer to a
>primary exception.  It uses this exception's reference count,
>incrementing upon taking ownership and decrementing and potentially
>destroying upon releasing it.

And this would need to be atomic?

>std::rethrow_exception() shall call __cxa_allocate_dependent_exception()
>and make it reference the primary exception pointed to by the
>exception_ptr.  It shall increment the reference count of the primary
>exception.

Again atomic?