diff options
author | Mohammed Abdul Azeem <azeemmysore@gmail.com> | 2017-06-08 13:32:42 +0530 |
---|---|---|
committer | Michael Meeks <michael.meeks@collabora.com> | 2017-06-08 12:50:17 +0200 |
commit | d21a675d3a7deff37fd66adc993d0179d3a39ed7 (patch) | |
tree | 54d3464355fa8eb74fcd370cbdc9d59f37ddca9f /package/source/zipapi/XUnbufferedStream.cxx | |
parent | 630186ff4e0eba7317e542f8c3eca39ebd068721 (diff) |
Fixing loose ends for multithread Sync in package/:
Mutexes in different classes operate exclusively, which might
cause sync problem when multithreads are involved. This
patch shares the mutex across all classes that share
the underlying stream.
Change-Id: I57e549fb7c375f93955bf54886b91b1892db1e27
Reviewed-on: https://gerrit.libreoffice.org/38563
Reviewed-by: Michael Meeks <michael.meeks@collabora.com>
Tested-by: Michael Meeks <michael.meeks@collabora.com>
Diffstat (limited to 'package/source/zipapi/XUnbufferedStream.cxx')
-rw-r--r-- | package/source/zipapi/XUnbufferedStream.cxx | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/package/source/zipapi/XUnbufferedStream.cxx b/package/source/zipapi/XUnbufferedStream.cxx index 8992e227b24d..a7465e397e24 100644 --- a/package/source/zipapi/XUnbufferedStream.cxx +++ b/package/source/zipapi/XUnbufferedStream.cxx @@ -48,7 +48,7 @@ XUnbufferedStream::XUnbufferedStream( bool bIsEncrypted, const OUString& aMediaType, bool bRecoveryMode ) -: maMutexHolder( aMutexHolder.is() ? aMutexHolder : rtl::Reference<SotMutexHolder>( new SotMutexHolder ) ) +: maMutexHolder( aMutexHolder ) , mxZipStream ( xNewZipStream ) , mxZipSeek ( xNewZipStream, UNO_QUERY ) , maEntry ( rEntry ) @@ -108,9 +108,10 @@ XUnbufferedStream::XUnbufferedStream( // allows to read package raw stream XUnbufferedStream::XUnbufferedStream( const uno::Reference< uno::XComponentContext >& /*xContext*/, + const rtl::Reference<SotMutexHolder>& aMutexHolder, const Reference < XInputStream >& xRawStream, const ::rtl::Reference< EncryptionData >& rData ) -: maMutexHolder( new SotMutexHolder ) +: maMutexHolder( aMutexHolder ) , mxZipStream ( xRawStream ) , mxZipSeek ( xRawStream, UNO_QUERY ) , mnBlockSize( 1 ) |