967. Various threading bugs #17

Section: 33.3.2.2 [thread.thread.constr] Status: C++11 Submitter: Pete Becker Opened: 2009-01-07 Last modified: 2016-02-10

Priority: Not Prioritized

View all other issues in [thread.thread.constr].

View all issues with C++11 status.

Discussion:

the error handling for the constructor for condition_variable distinguishes lack of memory from lack of other resources, but the error handling for the thread constructor does not. Is this difference intentional?

[ Beman has volunteered to provide proposed wording. ]

[ 2009-09-25 Beman provided proposed wording. ]

The proposed resolution assumes 962 has been accepted and its proposed resolution applied to the working paper.

[ 2009-10 Santa Cruz: ]

Move to Ready.

Proposed resolution:

Change Mutex requirements 33.4.3 [thread.mutex.requirements], paragraph 4, as indicated:

Error conditions:

Change Class condition_variable 33.5.3 [thread.condition.condvar], default constructor, as indicated:

condition_variable();

Effects: Constructs an object of type condition_variable.

Throws: std::system_error when an exception is required (33.2.2 [thread.req.exception]).

Error conditions:

  • not_enough_memory — if a memory limitation prevents initialization.
  • resource_unavailable_try_again — if some non-memory resource limitation prevents initialization.
  • device_or_resource_busy — if attempting to initialize a previously-initialized but as of yet undestroyed condition_variable.