We've been doing some testing here - and after 1300 runs of a writer test - we managed to produce the following trace. It -looks- as if we have a hung app - waiting for an event that never arrives. Almost certainly a consequence of the horror that is osl::Condition - and its various inadequacies. The solution is probably to phase out osl::Condition in favor of any alternative - eg. the boost Condition. Particularly for this threadpool.
Created attachment 128957 [details] freeze.
There's also std::condition_variable in C++11...
Working on switching it to std:: threading foo ... fun.
Pushed an initial patch to gerrit; -much- saner using a real condition it turns out =)
Michael Meeks committed a patch related to this issue. It has been pushed to "master": http://cgit.freedesktop.org/libreoffice/core/commit/?id=aa68c99d88fd7abe08c4aee5206c859a0cdba38e tdf#104126 - comphelper thread-pool, use reliable std::condition_variable. It will be available in 5.4.0. The patch should be included in the daily builds available at http://dev-builds.libreoffice.org/daily/ in the next 24-48 hours. More information about daily builds can be found at: http://wiki.documentfoundation.org/Testing_Daily_Builds Affected users are encouraged to test the fix and report feedback.
Presumed fixed, if not replaced with another bug =)