[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Minios-devel] [UNIKRAFT PATCH v2 7/8] lib/uksched: Add function for killing threads
Looks good. Reviewed-by: Florian Schmidt <florian.schmidt@xxxxxxxxx> On 1/11/19 12:22 AM, Costin Lupu wrote: 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 cd792bf..973999b 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 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 inlinevoid 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 ed55a64..3b7ebf3 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 5616ee1..3536ea6 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.cindex 0589d48..5c393c1 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; } -- Dr. Florian Schmidt フローリアン・シュミット Research Scientist, Systems and Machine Learning Group NEC Laboratories Europe Kurfürsten-Anlage 36, D-69115 Heidelberg Tel. +49 (0)6221 4342-265 Fax: +49 (0)6221 4342-155 e-mail: florian.schmidt@xxxxxxxxx ============================================================ Registered at Amtsgericht Mannheim, Germany, HRB728558 _______________________________________________ Minios-devel mailing list Minios-devel@xxxxxxxxxxxxxxxxxxxx https://lists.xenproject.org/mailman/listinfo/minios-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |