This page is a snapshot from the LWG issues list, see the Library Active Issues List for more information and the meaning of Resolved status.

### 1515. `packaged_task::make_ready_at_thread_exit` has no synchronization requirements

Section: 32.9.10.2 [futures.task.members] Status: Resolved Submitter: INCITS Opened: 2010-08-25 Last modified: 2016-01-28

Priority: Not Prioritized

View all other issues in [futures.task.members].

View all issues with Resolved status.

Discussion:

Addresses US-208

`packaged_task::make_ready_at_thread_exit` has no synchronization requirements.

[ Resolution proposed by ballot comment: ]

Figure out what the synchronization requirements should be and write them.

[2011-02-09 Anthony provides a proposed resolution]

[2011-02-19 Additional edits by Hans, shown in the proposed resolution section]

[2011-02-22 Reflector discussion]

Moved to Tentatively Ready after 5 votes.

> Proposed Resolution

> Add a new paragraph following 32.9.10.2 [futures.task.members] p. 19:

> >     void make_ready_at_thread_exit(ArgTypes... args);

> > 19 - ...

> > ?? - Synchronization: Following a successful call to `make_ready_at_thread_exit`, the destruction of all objects with thread storage duration associated with the current thread happens before the associated asynchronous state is made ready. The marking of the associated asynchronous state as ready synchronizes with (6.9.2 [intro.multithread]) the successful return from any function that detects that the state is set to ready.

Proposed resolution:

Resolved 2011-03 Madrid meeting by paper N3278