[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

[SCM] LibreOffice packaging repository branch, master, updated. libreoffice_3.4.5-1-2-g3ff99e0



The following commit has been merged in the master branch:
commit 293d393c27eb4a9e9999efafa616e21a6c983871
Author: Rene Engelhard <rene@debian.org>
Date:   Fri Jan 13 10:30:53 2012 +0100

    backport fix for ttach/Detach-CurrentThread slowness from libreoffice-3-5

diff --git a/changelog b/changelog
index 1902e11..a9a867b 100644
--- a/changelog
+++ b/changelog
@@ -1,3 +1,11 @@
+libreoffice (1:3.4.5-2) UNRELEASED; urgency=low
+
+  * debian/patches/jdbc-driver-threading.diff: backport fix for
+    Attach/Detach-CurrentThread slowness from libreoffice-3-5
+    (closes: #644957)
+
+ -- Rene Engelhard <rene@debian.org>  Sun, 15 Jan 2012 23:11:52 +0100
+
 libreoffice (1:3.4.5-1) unstable; urgency=medium
 
   [ Rene Engelhard ]
diff --git a/patches/jdbc-driver-threading.diff b/patches/jdbc-driver-threading.diff
new file mode 100644
index 0000000..20f1efd
--- /dev/null
+++ b/patches/jdbc-driver-threading.diff
@@ -0,0 +1,65 @@
+--- /dev/null	2012-01-12 01:26:03.031969178 +0100
++++ libreoffice-3.4.5/libreoffice-build/patches/hotfixes/jdbc-driver-threading.diff	2012-01-15 23:08:55.000000000 +0100
+@@ -0,0 +1,62 @@
++From cbc1ddba1bbe8843e0b31d39cb5c04f7b6518925 Mon Sep 17 00:00:00 2001
++From: Stephan Bergmann <sbergman@redhat.com>
++Date: Fri, 13 Jan 2012 08:38:07 +0000
++Subject: Confine JDBC driver to thread-affine apartment for Java 6 performance
++
++... so that the massive number of the JDBC driver's calls to JNI Attach/Detach-
++CurrentThread are guaranteed not to happen on the main thread (where they are
++extremely expensive, see
++<http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6978641> "Fix for 6929067
++introduces additional overhead in thread creation/termination paths").
++
++(cherry picked from commit bb59742bcf4883af5876a2ffadcc4a689e414b60)
++---
++diff --git a/connectivity/source/drivers/jdbc/exports.dxp b/connectivity/source/drivers/jdbc/exports.dxp
++index 7003307..f0e1c69 100755
++--- connectivity/source/drivers/jdbc/exports.dxp
+++++ connectivity/source/drivers/jdbc/exports.dxp
++@@ -1 +1,2 @@
+++component_getImplementationEnvironment
++ component_getFactory
++diff --git a/connectivity/source/drivers/jdbc/jservices.cxx b/connectivity/source/drivers/jdbc/jservices.cxx
++index 59c73ff..85df771 100644
++--- connectivity/source/drivers/jdbc/jservices.cxx
+++++ connectivity/source/drivers/jdbc/jservices.cxx
++@@ -83,7 +83,21 @@ struct ProviderRequest
++     void* getProvider() const { return xRet.get(); }
++ };
++ 
++-//---------------------------------------------------------------------------------------
+++extern "C" SAL_DLLPUBLIC_EXPORT void SAL_CALL
+++component_getImplementationEnvironment(
+++    char const ** ppEnvTypeName, uno_Environment **)
+++{
+++    // Recent Java 6 VMs make calls to JNI Attach/DetachCurrentThread (which
+++    // this code does extensively) very expensive.  A follow-up JVM fix reduced
+++    // the overhead significantly again for all threads but the main thread.  So
+++    // a quick hack to improve performance of this component again is to confine
+++    // it in the affine apartment (where all code will run on a single,
+++    // dedicated thread that is guaranteed no to be the main thread).  However,
+++    // a better fix would still be to redesign the code so that it does not call
+++    // Attach/DetachCurrentThread so frequently:
+++    *ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME ":affine";
+++}
+++
++ extern "C" SAL_DLLPUBLIC_EXPORT void* SAL_CALL component_getFactory(
++                     const sal_Char* pImplementationName,
++                     void* pServiceManager,
++diff --git a/connectivity/source/drivers/jdbc/makefile.mk b/connectivity/source/drivers/jdbc/makefile.mk
++index befdc73..4229c8f 100755
++--- connectivity/source/drivers/jdbc/makefile.mk
+++++ connectivity/source/drivers/jdbc/makefile.mk
++@@ -78,8 +78,6 @@ SLOFILES=\
++         $(SLO)$/tools.obj                           \
++         $(SLO)$/ContextClassLoader.obj
++ 
++-SHL1VERSIONMAP=$(SOLARENV)/src/component.map
++-
++ # --- Library -----------------------------------
++ 
++ SHL1TARGET=	$(JDBC_TARGET)$(DLLPOSTFIX)
++--
++cgit v0.9.0.2-2-gbebe
diff --git a/patches/series b/patches/series
index 1900c4f..fcd41d2 100644
--- a/patches/series
+++ b/patches/series
@@ -23,3 +23,4 @@ s390x.diff
 update-libreoffice.1.diff
 wordml2ooo_draw.xsl-add-missing-include.diff
 add-debian-multiarch-support.diff
+jdbc-driver-threading.diff

-- 
LibreOffice packaging repository


Reply to: