Cool! I am concerned about the threading hang though;
can you attach gdb
to the hung process and execute "thread apply all bt", then post the
results? Not sure what would be different under FreeBSD vs. Linux as far
as threading is concerned, but this should give a clue at least.
Thanks!
Tim
I forgot: valgrind on wheezy complains about the same errors as valgrind on freebsd, but
the *.wait()-calls always return on wheezy but hang on freebsd.
==5521== ----------------------------------------------------------------
==5521==
==5521== Thread #3: pthread_cond_{signal,broadcast}: dubious: associated lock is not held
by any thread
==5521== at 0x4C2A345: pthread_cond_signal_WRK (hg_intercepts.c:839)
==5521== by 0x552059C: TQWaitCondition::wakeOne() (in /usr/lib/libtqt-mt.so.3.5.0)
==5521== by 0x406021: ProdThread::run() (prodcons.cpp:122)
==5521== by 0x52CBE8C: ??? (in /usr/lib/libtqt-mt.so.3.5.0)
==5521== by 0x8012F44: ??? (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3200.4)
==5521== by 0x4C2B5AD: mythread_wrapper (hg_intercepts.c:219)
==5521== by 0x675CB4F: start_thread (pthread_create.c:304)
==5521== by 0x71ED7BC: clone (clone.S:112)
==5521==
==5521== ----------------------------------------------------------------
==5521==
==5521== Thread #1: lock order "0xA2B43A8 before 0xA2A76E8" violated
==5521==
==5521== Observed (incorrect) order is: acquisition of lock at 0xA2A76E8
==5521== (stack unavailable)
==5521==
==5521== followed by a later acquisition of lock at 0xA2B43A8
==5521== at 0x4C2BAF5: pthread_mutex_lock (hg_intercepts.c:495)
==5521== by 0x551FAEC: ??? (in /usr/lib/libtqt-mt.so.3.5.0)
==5521== by 0x4063DC: ConsThread::stop() (prodcons.cpp:169)
==5521== by 0x406A2B: ProdCons::stop() (prodcons.cpp:333)
==5521== by 0x406B95: ProdCons::customEvent(TQCustomEvent*) (prodcons.cpp:367)
==5521== by 0x531DB7E: TQObject::event(TQEvent*) (in /usr/lib/libtqt-mt.so.3.5.0)
==5521== by 0x534CDE2: TQWidget::event(TQEvent*) (in /usr/lib/libtqt-mt.so.3.5.0)
==5521== by 0x52D203E: TQApplication::internalNotify(TQObject*, TQEvent*) (in
/usr/lib/libtqt-mt.so.3.5.0)
==5521== by 0x52D237A: TQApplication::notify(TQObject*, TQEvent*) (in
/usr/lib/libtqt-mt.so.3.5.0)
==5521== by 0x52D34B1: TQApplication::sendPostedEvents(TQObject*, int) (in
/usr/lib/libtqt-mt.so.3.5.0)
==5521== by 0x52B5E54: TQEventLoop::processX11Events() (in
/usr/lib/libtqt-mt.so.3.5.0)
==5521== by 0x52B68F9: TQEventLoop::gsourceDispatch(_GSource*) (in
/usr/lib/libtqt-mt.so.3.5.0)
==5521==
==5521== ----------------------------------------------------------------
==5521==
==5521== Thread #1: pthread_cond_{signal,broadcast}: dubious: associated lock is not held
by any thread
==5521== at 0x4C2A1D5: pthread_cond_broadcast_WRK (hg_intercepts.c:891)
==5521== by 0x55205DC: TQWaitCondition::wakeAll() (in /usr/lib/libtqt-mt.so.3.5.0)
==5521== by 0x406A37: ProdCons::stop() (prodcons.cpp:334)
==5521== by 0x406B95: ProdCons::customEvent(TQCustomEvent*) (prodcons.cpp:367)
==5521== by 0x531DB7E: TQObject::event(TQEvent*) (in /usr/lib/libtqt-mt.so.3.5.0)
==5521== by 0x534CDE2: TQWidget::event(TQEvent*) (in /usr/lib/libtqt-mt.so.3.5.0)
==5521== by 0x52D203E: TQApplication::internalNotify(TQObject*, TQEvent*) (in
/usr/lib/libtqt-mt.so.3.5.0)
==5521== by 0x52D237A: TQApplication::notify(TQObject*, TQEvent*) (in
/usr/lib/libtqt-mt.so.3.5.0)
==5521== by 0x52D34B1: TQApplication::sendPostedEvents(TQObject*, int) (in
/usr/lib/libtqt-mt.so.3.5.0)
==5521== by 0x52B5E54: TQEventLoop::processX11Events() (in
/usr/lib/libtqt-mt.so.3.5.0)
==5521== by 0x52B68F9: TQEventLoop::gsourceDispatch(_GSource*) (in
/usr/lib/libtqt-mt.so.3.5.0)
==5521== by 0x52B6A02: ??? (in /usr/lib/libtqt-mt.so.3.5.0)
==5521==
==5521== ----------------------------------------------------------------
==5521==
==5521== Thread #1: Exiting thread still holds 1 lock
==5521== at 0x71BD648: _Exit (_exit.c:33)
==5521== by 0x7147A8D: __run_exit_handlers (exit.c:93)
==5521== by 0x7147B34: exit (exit.c:100)
==5521== by 0x712FEB3: (below main) (libc-start.c:276)
Nik
--
Please do not email me anything that you are not comfortable also sharing with the NSA.
Dr. Nikolaus Klepp
Einnehmerstraße 14
A-4810 Gmunden
Tel.: +43 650 82 11 724
email: office(a)klepp.biz