Changes have been pushed for the repository "fawkes.git". (Fawkes Robotics Software Framework)
Clone: g...@git.fawkesrobotics.org:fawkes.git Gitweb: http://git.fawkesrobotics.org/fawkes.git Trac: http://trac.fawkesrobotics.org The branch, timn/thread-manager-finalize-fix has been created at 700de51c6edd9b48924c889a24b5934c44f3c6b9 (commit) http://git.fawkesrobotics.org/fawkes.git/timn/thread-manager-finalize-fix - *Log* --------------------------------------------------------------- commit 700de51c6edd9b48924c889a24b5934c44f3c6b9 Author: Tim Niemueller <niemuel...@kbsg.rwth-aachen.de> AuthorDate: Fri Mar 30 16:29:50 2018 +0200 Commit: Tim Niemueller <niemuel...@kbsg.rwth-aachen.de> CommitDate: Fri Mar 30 16:29:50 2018 +0200 libbaseapp: thread manager call finalize before aspect finalization When removing a single thread via the ThreadCollector in the ThreadProducerAspect, that very thread's finalize() was called after the aspects had already been finalized. This can (and most likely will) lead to segfaults, e.g., when trying to close a blackboard interface. fvbase was indeed suffering from this problem. This is similar to the fix for thread lists (e71b76e3 from 2013). http://git.fawkesrobotics.org/fawkes.git/commit/700de51 http://trac.fawkesrobotics.org/changeset/700de51 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - *Summary* ----------------------------------------------------------- - *Diffs* ------------------------------------------------------------- - *commit* 700de51c6edd9b48924c889a24b5934c44f3c6b9 - - - - - - - - - - Author: Tim Niemueller <niemuel...@kbsg.rwth-aachen.de> Date: Fri Mar 30 16:29:50 2018 +0200 Subject: libbaseapp: thread manager call finalize before aspect finalization src/libs/baseapp/thread_manager.cpp | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) _Diff for modified files_: diff --git a/src/libs/baseapp/thread_manager.cpp b/src/libs/baseapp/thread_manager.cpp index 45630a5..1db101b 100644 --- a/src/libs/baseapp/thread_manager.cpp +++ b/src/libs/baseapp/thread_manager.cpp @@ -461,8 +461,8 @@ ThreadManager::remove_maybelocked(Thread *thread, bool lock) thread->cancel(); thread->join(); - __finalizer->finalize(thread); thread->finalize(); + __finalizer->finalize(thread); internal_remove_thread(thread); } @@ -545,8 +545,8 @@ ThreadManager::force_remove(fawkes::Thread *thread) thread->cancel(); thread->join(); - if (__finalizer) __finalizer->finalize(thread); thread->finalize(); + if (__finalizer) __finalizer->finalize(thread); internal_remove_thread(thread); } -- Fawkes Robotics Framework http://www.fawkesrobotics.org _______________________________________________ fawkes-commits mailing list fawkes-commits@lists.kbsg.rwth-aachen.de https://lists.kbsg.rwth-aachen.de/listinfo/fawkes-commits