[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Minios-devel] [UNIKRAFT PATCH v4 07/12] lib/uksched: Add function for killing threads
Thread kill function replaces the thread destroy function as the public function for triggering thread deaths. Signed-off-by: Costin Lupu <costin.lupu@xxxxxxxxx> Reviewed-by: Florian Schmidt <florian.schmidt@xxxxxxxxx> --- lib/uksched/exportsyms.uk | 1 + lib/uksched/include/uk/sched.h | 2 ++ lib/uksched/include/uk/thread.h | 4 ++-- lib/uksched/sched.c | 5 +++++ lib/ukschedcoop/schedcoop.c | 2 +- plat/xen/xenbus/xs_comms.c | 2 +- 6 files changed, 12 insertions(+), 4 deletions(-) diff --git a/lib/uksched/exportsyms.uk b/lib/uksched/exportsyms.uk index 3118383d..c67892c4 100644 --- a/lib/uksched/exportsyms.uk +++ b/lib/uksched/exportsyms.uk @@ -7,6 +7,7 @@ uk_sched_start uk_sched_idle_init uk_sched_thread_create uk_sched_thread_destroy +uk_sched_thread_kill uk_sched_thread_sleep uk_sched_thread_exit uk_thread_init diff --git a/lib/uksched/include/uk/sched.h b/lib/uksched/include/uk/sched.h index e5630ed6..9e218688 100644 --- a/lib/uksched/include/uk/sched.h +++ b/lib/uksched/include/uk/sched.h @@ -217,6 +217,8 @@ struct uk_thread *uk_sched_thread_create(struct uk_sched *sched, void (*function)(void *), void *arg); void uk_sched_thread_destroy(struct uk_sched *sched, struct uk_thread *thread); +void uk_sched_thread_kill(struct uk_sched *sched, + struct uk_thread *thread); static inline void uk_sched_thread_switch(struct uk_sched *sched, diff --git a/lib/uksched/include/uk/thread.h b/lib/uksched/include/uk/thread.h index 131268b4..f3891c29 100644 --- a/lib/uksched/include/uk/thread.h +++ b/lib/uksched/include/uk/thread.h @@ -69,8 +69,8 @@ UK_TAILQ_HEAD(uk_thread_list, struct uk_thread); name, attr, function, data) #define uk_thread_create(name, function, data) \ uk_thread_create_attr(name, NULL, function, data) -#define uk_thread_destroy(thread) \ - uk_sched_thread_destroy(thread->sched, thread) +#define uk_thread_kill(thread) \ + uk_sched_thread_kill(thread->sched, thread) void uk_thread_exit(struct uk_thread *thread); int uk_thread_wait(struct uk_thread *thread); diff --git a/lib/uksched/sched.c b/lib/uksched/sched.c index a0d706f5..5f6bc685 100644 --- a/lib/uksched/sched.c +++ b/lib/uksched/sched.c @@ -222,6 +222,11 @@ void uk_sched_thread_destroy(struct uk_sched *sched, struct uk_thread *thread) uk_free(sched->allocator, thread); } +void uk_sched_thread_kill(struct uk_sched *sched, struct uk_thread *thread) +{ + uk_sched_thread_remove(sched, thread); +} + void uk_sched_thread_sleep(__nsec nsec) { struct uk_thread *thread; diff --git a/lib/ukschedcoop/schedcoop.c b/lib/ukschedcoop/schedcoop.c index 2a646760..a3f265c6 100644 --- a/lib/ukschedcoop/schedcoop.c +++ b/lib/ukschedcoop/schedcoop.c @@ -128,7 +128,7 @@ static void schedcoop_schedule(struct uk_sched *s) continue; if (thread != prev) - uk_thread_destroy(thread); + uk_sched_thread_destroy(s, thread); } } diff --git a/plat/xen/xenbus/xs_comms.c b/plat/xen/xenbus/xs_comms.c index 0589d48b..5c393c1e 100644 --- a/plat/xen/xenbus/xs_comms.c +++ b/plat/xen/xenbus/xs_comms.c @@ -617,6 +617,6 @@ void xs_comms_fini(void) xsh.buf = NULL; /* TODO stop thread, instead of killing it */ - uk_thread_destroy(xsh.thread); + uk_thread_kill(xsh.thread); xsh.thread = NULL; } -- 2.11.0 _______________________________________________ Minios-devel mailing list Minios-devel@xxxxxxxxxxxxxxxxxxxx https://lists.xenproject.org/mailman/listinfo/minios-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |