Loading...
Searching...
No Matches
thread.hpp File Reference

C++11 thread drop in replacement. More...

Detailed Description

C++11 thread drop in replacement.

See also
std::thread, std::this_thread
Author
Raphael Hiesgen <raphael.hiesgen (at) haw-hamburg.de>
Deprecated
The C++ compat threading API has several API flaws, such as use of dynamic memory management, unconfigurable stack sizes, and runtime crashes on memory fragmentation. It also has not been maintained since 2015. Users should use the C API such as thread_create instead. This functionality will be dropped after the 2027.04 release.

Definition in file thread.hpp.

#include "time.h"
#include "thread.h"
#include <array>
#include <tuple>
#include <atomic>
#include <memory>
#include <utility>
#include <exception>
#include <stdexcept>
#include <functional>
#include <type_traits>
#include "riot/mutex.hpp"
#include "riot/chrono.hpp"
#include "riot/condition_variable.hpp"
#include "riot/detail/thread_util.hpp"
+ Include dependency graph for thread.hpp:

Go to the source code of this file.

Data Structures

struct  riot::thread_data
 Holds context data for the thread. More...
 
struct  riot::thread_data_deleter
 This deleter prevents our thread data from being destroyed if the thread object is destroyed before the thread had a chance to run. More...
 
class  riot::thread_id
 implementation of thread::id More...
 
class  riot::thread
 C++11 compliant implementation of thread, however uses the time point from out chrono header instead of the specified one. More...
 

Namespaces

namespace  riot
 RIOT C++ namespace.
 

Functions

template<class T, class Traits>
std::basic_ostream< T, Traits > & riot::operator<< (std::basic_ostream< T, Traits > &out, thread_id id)
 Enable printing of thread ids using output streams.
 
thread_id riot::this_thread::get_id () noexcept
 Access the id of the currently running thread.
 
void riot::this_thread::yield () noexcept
 Yield the currently running thread.
 
void riot::this_thread::sleep_for (const std::chrono::microseconds &us)
 Puts the current thread to sleep.
 
template<class Rep, class Period>
void riot::this_thread::sleep_for (const std::chrono::duration< Rep, Period > &sleep_duration)
 Puts the current thread to sleep.
 
void riot::this_thread::sleep_until (const riot::time_point &sleep_time)
 Puts the current thread to sleep.
 
void riot::swap (thread &lhs, thread &rhs) noexcept
 Swaps two threads.
 

Function Documentation

◆ get_id()

thread_id riot::this_thread::get_id ( )
inlinenoexcept

Access the id of the currently running thread.

Definition at line 164 of file thread.hpp.

◆ sleep_for() [1/2]

template<class Rep, class Period>
void riot::this_thread::sleep_for ( const std::chrono::duration< Rep, Period > & sleep_duration)

Puts the current thread to sleep.

Parameters
[in]sleep_durationThe duration to sleep.

Definition at line 179 of file thread.hpp.

◆ sleep_for() [2/2]

void riot::this_thread::sleep_for ( const std::chrono::microseconds & us)

Puts the current thread to sleep.

Parameters
[in]usDuration to sleep in microseconds.

◆ sleep_until()

void riot::this_thread::sleep_until ( const riot::time_point & sleep_time)
inline

Puts the current thread to sleep.

Parameters
[in]sleep_timeA point in time that specifies when the thread should wake up.

Definition at line 204 of file thread.hpp.

◆ yield()

void riot::this_thread::yield ( )
inlinenoexcept

Yield the currently running thread.

Definition at line 168 of file thread.hpp.