Hi, Alex. Just for some hint. break_pthread.cpp has a doubly unlocking path in worker() function. You can eliminate it like this:
--- /tmp/break_pthreads.cpp 2010-10-15 17:27:26.362761567 +0900 +++ /tmp/break_pthreads2.cpp 2010-10-15 17:27:51.576094901 +0900 @@ -46,8 +46,8 @@ toDo.pop_back(); workgot++; } + pthread_mutex_unlock(&work_lock); } - pthread_mutex_unlock(&work_lock); for (unsigned int i = 0; i < workgot; i++) { finishWork(workingOn[i]); Although I don't know whether aborting is a 'bug' or not, at least with my host on rebuilt 2.11.2-6 glibc, this was the point. If your program has same flow, you might avoid problem. -- OHKUMA Tadayoshi / t...@omoikane.co.jp CEO & Engineering Consultant Omoikane Inc. / http://www.omoikane.co.jp/ -- To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org