1368. Thread safety of std::uncaught_exception()

Section: 99 [depr.uncaught] Status: C++11 Submitter: BSI Opened: 2010-08-25 Last modified: 2017-06-15

Priority: Not Prioritized

View all issues with C++11 status.

Discussion:

Addresses GB-73

The thread safety std::uncaught_exception() and the result of the function when multiple threads throw exceptions at the same time are unspecified. To make the function safe to use in the presence of exceptions in multiple threads the specification needs to be updated.

[ Resolution proposed by ballot comment ]

Update this clause to support safe calls from multiple threads without placing synchronization requirements on the user.

[ 2010 Batavia Concurrency group provides a Proposed Resolution ]

[ Adopted at 2010-11 Batavia ]

Proposed resolution:

Change 99 [uncaught] p. 1 as follows:

Returns: true after the current thread has initialized initializing an exception object (15.1) until a handler for the exception (including unexpected() or terminate()) is activated (15.3). [ Note: This includes stack unwinding (15.2). — end note ]