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