diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/include/thread.h | 8 | ||||
-rw-r--r-- | src/lib/thread.c | 5 |
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; |