aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAvatar Ciaran McCreesh <ciaran.mccreesh@googlemail.com> 2010-06-09 19:02:12 +0100
committerAvatar Ciaran McCreesh <ciaran.mccreesh@googlemail.com> 2010-06-09 19:02:12 +0100
commitc9137efc3ef08b5c52f775dd853c1c675e80cc64 (patch)
treec384d85bc26e28fc674816c70bb92df1dbcaf889
parent333689e8f35c3a64386c56247c7830f6cd59e221 (diff)
downloadpaludis-c9137efc3ef08b5c52f775dd853c1c675e80cc64.tar.gz
paludis-c9137efc3ef08b5c52f775dd853c1c675e80cc64.tar.xz
More info on threads leaking exceptions
-rw-r--r--paludis/util/thread.cc6
1 files changed, 5 insertions, 1 deletions
diff --git a/paludis/util/thread.cc b/paludis/util/thread.cc
index 8c3a2ea..6729ddb 100644
--- a/paludis/util/thread.cc
+++ b/paludis/util/thread.cc
@@ -1,7 +1,7 @@
/* vim: set sw=4 sts=4 et foldmethod=syntax : */
/*
- * Copyright (c) 2007, 2008 Ciaran McCreesh
+ * Copyright (c) 2007, 2008, 2010 Ciaran McCreesh
*
* This file is part of the Paludis package manager. Paludis is free software;
* you can redistribute it and/or modify it under the terms of the GNU General
@@ -50,6 +50,10 @@ Thread::thread_func(void * r)
{
static_cast<Thread *>(r)->_func();
}
+ catch (const Exception & e)
+ {
+ static_cast<Thread *>(r)->_exception = e.backtrace(": ") + e.message() + " (" + e.what() + ")";
+ }
catch (const std::exception & e)
{
static_cast<Thread *>(r)->_exception = e.what();