Bug#596990: doubly unlocking?
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 / tad@omoikane.co.jp
CEO & Engineering Consultant
Omoikane Inc. / http://www.omoikane.co.jp/
Reply to: