summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/include/thread.h8
-rw-r--r--src/lib/thread.c5
2 files changed, 13 insertions, 0 deletions
diff --git a/src/include/thread.h b/src/include/thread.h
index da8ed721e3..6df9d7edc5 100644
--- a/src/include/thread.h
+++ b/src/include/thread.h
@@ -33,6 +33,10 @@ int thread_run(void (*func)(void *), void *arg);
* machine. */
int thread_run_until(void (*func)(void *), void *arg,
boot_state_t state, boot_state_sequence_t seq);
+
+/* Return 0 on successful yield, < 0 when thread did not yield. */
+int thread_yield(void);
+
/* Return 0 on successful yield for the given amount of time, < 0 when thread
* did not yield. */
int thread_yield_microseconds(unsigned int microsecs);
@@ -64,6 +68,10 @@ static inline int thread_run_until(void (*func)(void *), void *arg, boot_state_t
{
return -1;
}
+static inline int thread_yield(void)
+{
+ return -1;
+}
static inline int thread_yield_microseconds(unsigned int microsecs)
{
return -1;
diff --git a/src/lib/thread.c b/src/lib/thread.c
index 782a63ea52..a8c0772c89 100644
--- a/src/lib/thread.c
+++ b/src/lib/thread.c
@@ -332,6 +332,11 @@ int thread_run_until(void (*func)(void *), void *arg,
return 0;
}
+int thread_yield(void)
+{
+ return thread_yield_microseconds(0);
+}
+
int thread_yield_microseconds(unsigned int microsecs)
{
struct thread *current;