From 8665c30ace2b0b23b862a635ba0ff696d371f2d9 Mon Sep 17 00:00:00 2001 From: Michael Lotz Date: Sat, 7 Nov 2009 16:33:29 +0000 Subject: [PATCH] That was not such a good destruction order in the error case. As the scheduler accesses the scheduler data inside the thread structure, freeing it first lead to a crash when a thread couldn't be created. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33940 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/system/kernel/thread.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/system/kernel/thread.cpp b/src/system/kernel/thread.cpp index f03df33326..a39f24295d 100644 --- a/src/system/kernel/thread.cpp +++ b/src/system/kernel/thread.cpp @@ -313,9 +313,10 @@ err2: err1: // ToDo: put them in the dead queue instead? if (inthread == NULL) { - free(thread); scheduler_on_thread_destroy(thread); + free(thread); } + return NULL; }