mirror of
https://github.com/boostorg/core.git
synced 2025-05-09 23:03:54 +00:00
80 lines
1.6 KiB
Plaintext
80 lines
1.6 KiB
Plaintext
[/
|
|
Copyright 2023 Peter Dimov
|
|
Distributed under the Boost Software License, Version 1.0.
|
|
https://boost.org/LICENSE_1_0.txt
|
|
]
|
|
|
|
[section:yield_primitives Yield Primitives]
|
|
|
|
[simplesect Authors]
|
|
|
|
* Peter Dimov
|
|
|
|
[endsimplesect]
|
|
|
|
[section Header <boost/core/yield_primitives.hpp>]
|
|
|
|
The header `<boost/core/yield_primitives.hpp>` implements a
|
|
collection of primitives that allow the current thread to
|
|
yield the CPU in various ways.
|
|
|
|
Very low level, specialized functionality, generally only useful for
|
|
implementing spinlocks. Normal synchronization primitives should
|
|
almost always be preferable in application code.
|
|
|
|
[section Synopsis]
|
|
|
|
``
|
|
namespace boost
|
|
{
|
|
namespace core
|
|
{
|
|
|
|
void sp_thread_pause() noexcept;
|
|
void sp_thread_yield() noexcept;
|
|
void sp_thread_sleep() noexcept;
|
|
|
|
} // namespace core
|
|
} // namespace boost
|
|
``
|
|
|
|
[endsect]
|
|
|
|
[section sp_thread_pause]
|
|
|
|
`void sp_thread_pause() noexcept;`
|
|
|
|
Emits a PAUSE instruction (on x86) or a YIELD instruction (on ARM).
|
|
|
|
A portable equivalent of the GCC builtin function `__builtin_ia32_pause`.
|
|
|
|
[endsect]
|
|
|
|
[section sp_thread_yield]
|
|
|
|
`void sp_thread_yield() noexcept;`
|
|
|
|
Informs the scheduler that the current thread wishes to relinquish
|
|
the rest of its timeslice.
|
|
|
|
A portable equivalent of POSIX `sched_yield`.
|
|
|
|
[endsect]
|
|
|
|
[section sp_thread_sleep]
|
|
|
|
`void sp_thread_sleep() noexcept;`
|
|
|
|
Sleeps for a short period, as if by calling POSIX `nanosleep` with
|
|
a small, implementation-dependent, interval (usually one microsecond).
|
|
|
|
A more forcing yield primitive than `sp_thread_yield`, because it's
|
|
generally not ignored even if all other waiting threads are of lower
|
|
priority.
|
|
|
|
[endsect]
|
|
|
|
[endsect]
|
|
|
|
[endsect]
|