[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Minios-devel] [UNIKRAFT PATCH 7/8] 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> --- 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 22c8913..c9da2fd 100644 --- a/lib/uksched/exportsyms.uk +++ b/lib/uksched/exportsyms.uk @@ -9,6 +9,7 @@ uk_sched_thread_create uk_sched_thread_destroy uk_sched_thread_sleep uk_sched_thread_exit +uk_sched_thread_kill uk_thread_init uk_thread_fini uk_thread_block_timeout diff --git a/lib/uksched/include/uk/sched.h b/lib/uksched/include/uk/sched.h index c3e2866..5800c07 100644 --- a/lib/uksched/include/uk/sched.h +++ b/lib/uksched/include/uk/sched.h @@ -215,6 +215,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 3267ab2..4c4e037 100644 --- a/lib/uksched/include/uk/thread.h +++ b/lib/uksched/include/uk/thread.h @@ -68,8 +68,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 c5b7c9f..0e34552 100644 --- a/lib/uksched/sched.c +++ b/lib/uksched/sched.c @@ -228,6 +228,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 0a735bd..3b3a554 100644 --- a/lib/ukschedcoop/schedcoop.c +++ b/lib/ukschedcoop/schedcoop.c @@ -131,7 +131,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 3fd6a07..6f53e48 100644 --- a/plat/xen/xenbus/xs_comms.c +++ b/plat/xen/xenbus/xs_comms.c @@ -619,6 +619,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 |