Project

General

Profile

Bug #1003

Updated by tuxillo about 11 years ago

Qt 4.4 integrates QT Concurrent [1] template library which provides  
 high-level and very easy to use API for writing multi-threaded programs. 

 The problem is that all these programs crash (segfault) rather "reliably"  
 with libthread_xu while there is no single problem with libc_r. I even  
 managed to deadlock whole machine with one example program, but can not  
 repeat it for now (I have single desktop at the moment I need to work  
 with ;). 

 I made static binaries from trivial example program you can download  
 here - http://leaf.dragonflybsd.org/~hasso/qt44-threaded-tests.tar.bz2. 

 runfunction-lr is compiled with libc_r, runfunction-xu with libthread_xu. 
 runfunction-xu crashing backtrace is always the same: 

 #0    __pthread_mutex_trylock (m=0x0)  
 at /home/hasso/dragonfly-src/lib/libthread_xu/thread/thr_mutex.c:292 
 292               if (__predict_false(*m == NULL)) { 
 (gdb) bt 
 #0    __pthread_mutex_trylock (m=0x0)  
 at /home/hasso/dragonfly-src/lib/libthread_xu/thread/thr_mutex.c:292 
 #1    0x0814157e in g_mutex_trylock_posix_impl () 
 #2    0x0815186f in g_slice_alloc () 
 #3    0x0815ca7a in g_ptr_array_sized_new () 
 #4    0x0815cab5 in g_ptr_array_new () 
 #5    0x0814b5ec in g_main_context_new () 
 #6    0x080fd298 in QEventDispatcherGlibPrivate (this=0x281fb400,  
 context=0x0) 
     at kernel/qeventdispatcher_glib.cpp:241 
 #7    0x080fd4e7 in QEventDispatcherGlib (this=0x281f9260, parent=0x0) at  
 kernel/qeventdispatcher_glib.cpp:268 
 #8    0x08057e1a in QThreadPrivate::createEventDispatcher (data=0x281fa740)  
 at thread/qthread_unix.cpp:161 
 #9    0x08057f0c in QThreadPrivate::start (arg=0x281f91c0) at  
 thread/qthread_unix.cpp:185 
 #10 0x08145017 in thread_start (arg=0x281f6200) 
     at /home/hasso/dragonfly-src/lib/libthread_xu/thread/thr_create.c:239 
 #11 0x00000000 in ?? () 

 [1] - http://labs.trolltech.com/blogs/category/labs/threads/qt-concurrent/

Back