888. this_thread::yield too strong

Section: 33.3.3 [thread.thread.this] Status: C++11 Submitter: Lawrence Crowl Opened: 2008-09-15 Last modified: 2016-02-10

Priority: Not Prioritized

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

View all issues with C++11 status.

Discussion:

I never thought I'd say this, but this_thread::yield seems to be too strong in specification. The issue is that some systems distinguish between yielding to another thread in the same process and yielding to another process. Given that the C++ standard only talks about a single program, one can infer that the specification allows yielding only to another thread within the same program. Posix has no facility for that behavior. Can you please file an issue to weaken the wording. Perhaps "Offers the operating system the opportunity to reschedule."

[ Post Summit: ]

Recommend move to Tentatively Ready.

Proposed resolution:

Change 33.3.3 [thread.thread.this]/3:

void this_thread::yield();

Effects: Offers the operating system implementation the opportunity to reschedule. another thread.