diff options
Diffstat (limited to 'common/sched.c')
-rw-r--r-- | common/sched.c | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/common/sched.c b/common/sched.c new file mode 100644 index 0000000000..02582b2c5e --- /dev/null +++ b/common/sched.c @@ -0,0 +1,26 @@ +/* SPDX License Identifier: GPL-2.0 */ + +#include <bthread.h> +#include <poller.h> +#include <work.h> +#include <slice.h> +#include <sched.h> + +void resched(void) +{ + bool run_workqueues = !slice_acquired(&command_slice); + + if (poller_active()) + return; + + command_slice_acquire(); + + if (run_workqueues) { + wq_do_all_works(); + bthread_reschedule(); + } + + poller_call(); + + command_slice_release(); +} |