summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorRaul E Rangel <rrangel@chromium.org>2021-07-15 11:48:48 -0600
committerMartin Roth <martinroth@google.com>2021-07-18 00:25:29 +0000
commitd5dca21a958001a555b9a313156567f0bdec643b (patch)
treecf72c05bd55a989f268cfd1a930a837462598ef9 /src
parentd373d5d92f872e59248d4bd7225ae80616100f35 (diff)
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>
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;