From 286edaed68dce517b21104cf5f7255c480c4e994 Mon Sep 17 00:00:00 2001 From: Alexander Boettcher Date: Wed, 23 Sep 2015 15:59:18 +0200 Subject: [PATCH] base: detect and stop self de-structing threads Issue #1687 --- repos/base/src/base/thread/thread.cc | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/repos/base/src/base/thread/thread.cc b/repos/base/src/base/thread/thread.cc index 26270ec52..da1dfc9e3 100644 --- a/repos/base/src/base/thread/thread.cc +++ b/repos/base/src/base/thread/thread.cc @@ -13,6 +13,7 @@ #include #include +#include #include #include #include @@ -198,6 +199,12 @@ Thread_base::Thread_base(size_t weight, const char *name, size_t stack_size, Thread_base::~Thread_base() { + if (Thread_base::myself() == this) { + PERR("thread '%s' tried to self de-struct - sleeping forever.", + _context->name); + sleep_forever(); + } + _deinit_platform_thread(); _free_context(_context);