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
- To: cxx-abi-dev@xxxxxxxxxxxxxxxx, sebastian.redl@xxxxxxxxxxxxxx
- Subject: Re: [cxx-abi-dev] ABI modification for exception propagation
- From: Dennis Handly <dhandly@xxxxxxxxxx>
- Date: Fri, 30 May 2008 22:21:28 -0700 (PDT)
>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?