[Libreoffice-commits] core.git: Branch 'libreoffice-5-0' - wizards/com

Michael Stahl mstahl at redhat.com
Wed Aug 5 01:07:50 PDT 2015


 wizards/com/sun/star/wizards/web/Process.py |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

New commits:
commit 5beb43b3fe989a25234b17dfa5d6ba0f785c5deb
Author: Michael Stahl <mstahl at redhat.com>
Date:   Tue Aug 4 23:36:13 2015 +0200

    tdf#76845: wizards: fix Web wizard XSLT deadlock on Windows
    
    The web wizard runs some XSLT over the exported file.  It registers
    a handler that is called when the output stream is closed, and this
    Process.streamClosedHandler() calls terminate(), which causes the
    deadlock, because it wants to join() the extra XSLT thread but the
    handler is actually called from the XSLT thread itself.
    
    Fix that by moving the terminate() to another function that runs in the
    main thread.
    
    It does not deadlock on Unixes because osl_joinWithThread() actually
    detects an attempt to join the calling thread and returns early.
    
    Change-Id: Ia176562fa28b97c7e8956c1e8975c9aa6ee23236
    (cherry picked from commit 62de18ab98289fc80984299f13ad71e4a4452ea3)
    Reviewed-on: https://gerrit.libreoffice.org/17511
    Tested-by: Jenkins <ci at libreoffice.org>
    Reviewed-by: Miklos Vajna <vmiklos at collabora.co.uk>

diff --git a/wizards/com/sun/star/wizards/web/Process.py b/wizards/com/sun/star/wizards/web/Process.py
index 530b979..82be8b7 100644
--- a/wizards/com/sun/star/wizards/web/Process.py
+++ b/wizards/com/sun/star/wizards/web/Process.py
@@ -375,6 +375,7 @@ class Process(ProcessErrors):
             self.tf.start()
             while (not self.tfCompleted):
                 pass
+            self.tf.terminate()
             task.advance(True)
 
 
@@ -400,7 +401,6 @@ class Process(ProcessErrors):
         print ("DEBUG !!! Stream 'error' event handler")
 
     def streamClosedHandler(self, parent):
-        parent.tf.terminate()
         parent.tfCompleted = True
 
     # I broke the export method to two methods


More information about the Libreoffice-commits mailing list