diff options
author | Matthew J. Francis <mjay.francis@gmail.com> | 2014-11-27 12:08:07 +0800 |
---|---|---|
committer | Michael Meeks <michael.meeks@collabora.com> | 2014-11-27 13:34:07 +0000 |
commit | e678a333c1f4a7a1bf8594d888938e598ed2f6a1 (patch) | |
tree | ff89fde0e4646951524729a53bd53b8d94aa2bf6 /sc | |
parent | de39032e3877dcbe41f11d3d62d1ed1b4cc2b841 (diff) |
fdo#86687 Avoid deadlock updating progress bar
Change-Id: I13f93372fedc67bfd25d36a5bee10a004fe9f8f6
Reviewed-on: https://gerrit.libreoffice.org/13147
Reviewed-by: Michael Meeks <michael.meeks@collabora.com>
Tested-by: Michael Meeks <michael.meeks@collabora.com>
Diffstat (limited to 'sc')
-rw-r--r-- | sc/source/filter/excel/xetable.cxx | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/sc/source/filter/excel/xetable.cxx b/sc/source/filter/excel/xetable.cxx index 01c286df968d..66df5d65a8e1 100644 --- a/sc/source/filter/excel/xetable.cxx +++ b/sc/source/filter/excel/xetable.cxx @@ -2087,9 +2087,12 @@ void XclExpRowBuffer::Finalize( XclExpDefaultRowData& rDefRowData, const ScfUInt for ( itr = itrBeg; itr != itrEnd; ++itr, ++nIdx ) pTasks[ nIdx % nThreads ]->push_back( itr->second.get() ); - for ( size_t i = 0; i < nThreads; i++ ) + for ( size_t i = 1; i < nThreads; i++ ) rPool.pushTask( pTasks[ i ] ); + // Progress bar updates must be synchronous to avoid deadlock + pTasks[0]->doWork(); + rPool.waitUntilEmpty(); } |