lib/thread: Add thread_yield helper method

This helper method is just a shorthand for
`thread_yield_microseconds(0)`. I think it makes it clear that we want
to yield a thread without delaying.

BUG=b:179699789
TEST=build test

Suggested-by: Julius Werner <jwerner@chromium.org>
Signed-off-by: Raul E Rangel <rrangel@chromium.org>
Change-Id: Id8b60c35b183cff6871d7ba70b36eb33b136c735
Reviewed-on: https://review.coreboot.org/c/coreboot/+/56349
Reviewed-by: Karthik Ramasubramanian <kramasub@google.com>
Reviewed-by: Furquan Shaikh <furquan@google.com>
Reviewed-by: Julius Werner <jwerner@chromium.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
This commit is contained in:
Raul E Rangel 2021-07-15 11:48:48 -06:00 committed by Martin Roth
parent d373d5d92f
commit d5dca21a95
2 changed files with 13 additions and 0 deletions

View File

@ -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;

View File

@ -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;