filter/source/xsltfilter/LibXSLTTransformer.cxx | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-)
New commits: commit 31d606d42d3f2b0577c74af5778778c975d519ae Author: Stephan Bergmann <sberg...@redhat.com> Date: Mon Sep 11 18:13:51 2017 +0200 ...and fix previous commit cd8aeed1569222edd8bfd05d9d833f74b679fcd0 "Fix data races during CppunitTest_filter_xslt". (Funny how after each attempted fix, 'make CppunitTest_filter_xslt' succeeded multiple times in a row, and only started to fail ThreadSanitizer after pushing the attempted fix.) Change-Id: I24cab2dd1b068b02ccd4827cf8dcb11cf301d1c0 diff --git a/filter/source/xsltfilter/LibXSLTTransformer.cxx b/filter/source/xsltfilter/LibXSLTTransformer.cxx index 869643003edb..0fc7e434c1ea 100644 --- a/filter/source/xsltfilter/LibXSLTTransformer.cxx +++ b/filter/source/xsltfilter/LibXSLTTransformer.cxx @@ -364,17 +364,13 @@ namespace XSLT void Reader::forceStateStopped() { - xsltTransformContextPtr tcontext; - { - std::unique_lock<std::mutex> g(m_mutex); - tcontext = m_tcontext; - } - if (!tcontext) + std::unique_lock<std::mutex> g(m_mutex); + if (!m_tcontext) return; //tdf#100057 If we force a cancel, libxslt will of course just keep on going unless something //tells it to stop. Here we force the stopped state so that libxslt will stop processing //and so Reader::execute will complete and we can join cleanly - tcontext->state = XSLT_STATE_STOPPED; + m_tcontext->state = XSLT_STATE_STOPPED; } Reader::~Reader() _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits