from threading import Thread
from lxml import etree

xslt = """\
<xsl:stylesheet
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    version="1.0">
  <xsl:output method="xml" />
  <xsl:template match="/">
     <div id="test">
       <xsl:apply-templates/>
     </div>
  </xsl:template>
</xsl:stylesheet>
"""

xslts = []

def parseXSLT():
    xslt_doc = etree.fromstring(xslt)
    xslts.append( etree.XSLT(xslt_doc) )

t = Thread(target=parseXSLT)

t.start()
t.join()

stylesheet = xslts[0]


source_xml = "<document>This is a test</document>"

doc = etree.fromstring(source_xml)
result_tree = stylesheet(doc)
result = str(result_tree)

print "CRASH!"
del result_tree

print result

