Toggle navigation
Documentation
The friendly Operating System for the Internet of Things
thread_arch.h
Go to the documentation of this file.
1
/*
2
* SPDX-FileCopyrightText: 2021 Koen Zandberg <koen@bergzand.net>
3
* SPDX-FileCopyrightText: 2021 Inria
4
* SPDX-License-Identifier: LGPL-2.1-only
5
*/
6
7
#pragma once
8
19
#include "cpu_conf.h"
20
21
#ifdef __cplusplus
22
extern
"C"
{
23
#endif
24
25
#define THREAD_API_INLINED
26
27
#ifndef DOXYGEN
/* Doxygen is in core/include/thread.h */
28
29
static
inline
__attribute__((always_inline))
void
thread_yield_higher
(
void
)
30
{
31
/* trigger the PENDSV interrupt to run scheduler and schedule new thread if
32
* applicable */
33
SCB->ICSR = SCB_ICSR_PENDSVSET_Msk;
34
/* flush the pipeline. Otherwise we risk that subsequent instructions are
35
* executed before the IRQ has actually triggered */
36
__ISB();
37
}
38
39
#endif
/* DOXYGEN */
40
41
#ifdef __cplusplus
42
}
43
#endif
44
thread_yield_higher
THREAD_MAYBE_INLINE void thread_yield_higher(void)
Lets current thread yield in favor of a higher prioritized thread.
Generated on Sat Sep 6 2025 20:14:01 by
1.9.1