Predrag
Predrag

Reputation: 1557

std::this_thread::yield() usage?

Can someone provide real-life example of std::this_thread::yield() usage in c++ application?

Upvotes: 9

Views: 2138

Answers (1)

Howard Hinnant
Howard Hinnant

Reputation: 218770

I used yield in the implementation of std::lock, found here:

http://llvm.org/svn/llvm-project/libcxx/trunk/include/mutex

It turns out that when locking multiple locks/mutexes at a time, when you fail to get one, you can make the application faster by using yield prior to trying the locks/mutexes in a different order.

In this source code I'm actually calling sched_yield(). But that is only for the purpose of getting the header dependency the way I wanted it. On this platform std::this_thread::yield() is nothing more than a call to sched_yield():

http://llvm.org/svn/llvm-project/libcxx/trunk/include/thread

Upvotes: 8

Related Questions