diff options
author | Noel Grandin <noel@peralex.com> | 2016-07-08 14:29:53 +0200 |
---|---|---|
committer | Noel Grandin <noelgrandin@gmail.com> | 2016-07-18 06:49:09 +0000 |
commit | 76ad32bec8e2c00c21247041b16d9e09e73d2504 (patch) | |
tree | 7b2b1277151bc7904ff63684ebd7e3d6d8a7d661 /package/inc | |
parent | 9bf9f88e4c7e0b182ec6d8b4aefb7d735bb0653b (diff) |
add tagging to ThreadTasks so we don't need more one pool
If more than one place in the code submits tasks to the shared
pool, then waitTillDone() becomes unreliable.
Add a tagging mechanism, so different callsites can wait
on different sets of tasks.
Also try to protect our worker threads against exceptions from
the thread tasks code.
Change-Id: Idde664ab50008d31a2dd73910bb22f50e62ae22f
Reviewed-on: https://gerrit.libreoffice.org/27042
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noelgrandin@gmail.com>
Diffstat (limited to 'package/inc')
-rw-r--r-- | package/inc/ZipOutputStream.hxx | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/package/inc/ZipOutputStream.hxx b/package/inc/ZipOutputStream.hxx index 136bc72b249d..1fc41661d186 100644 --- a/package/inc/ZipOutputStream.hxx +++ b/package/inc/ZipOutputStream.hxx @@ -35,10 +35,10 @@ class ZipOutputStream { css::uno::Reference< css::io::XOutputStream > m_xStream; ::std::vector < ZipEntry * > m_aZipList; + std::shared_ptr<comphelper::ThreadTaskTag> mpThreadTaskTag; ByteChucker m_aChucker; ZipEntry *m_pCurrentEntry; - comphelper::ThreadPool &m_rSharedThreadPool; std::vector< ZipOutputEntry* > m_aEntries; ::css::uno::Any m_aDeflateException; @@ -80,6 +80,8 @@ public: void reduceScheduledThreadsToGivenNumberOrLess( sal_Int32 nThreads, sal_Int32 nWaitTimeInTenthSeconds); + + const std::shared_ptr<comphelper::ThreadTaskTag>& getThreadTaskTag() { return mpThreadTaskTag; } }; #endif |