diff options
author | Caolán McNamara <caolanm@redhat.com> | 2021-06-05 15:57:48 +0100 |
---|---|---|
committer | Caolán McNamara <caolanm@redhat.com> | 2021-06-05 18:54:17 +0200 |
commit | 2614ca783d3fa181a8a3a00c38103abc54cac56c (patch) | |
tree | 936b886945974c7d4f14afe062802e3023fa2475 | |
parent | cb90eda86544fdda9bd49f394b7a286fa355ce90 (diff) |
psp::PPDParser::getParser deadlock on launch
#3 0x00007fef4e844945 in std::mutex::lock() (this=0x7fef4f817640 <psp::PPDParser::getParser(rtl::OUString const&)::aMutex>)
#4 0x00007fef4eb2da43 in std::lock_guard<std::mutex>::lock_guard(std::mutex&) (this=0x7ffc2f47a2a0, __m=...)
#5 0x00007fef4eb1dd12 in psp::PPDParser::getParser(rtl::OUString const&) (rFile="SGENPRT") at vcl/unx/generic/printer/ppdparser.cxx:535
^^^second reentry^^^
#6 0x00007fef4eb76f3b in psp::CUPSManager::createCUPSParser(rtl::OUString const&) (this=0x329c0e0, rPrinter="CUPS:MP230-series") at vcl/unx/generic/printer/cupsmgr.cxx:533
#7 0x00007fef4eb1e4fa in psp::PPDParser::getParser(rtl::OUString const&) (rFile="CUPS:MP230-series") at vcl/unx/generic/printer/ppdparser.cxx:565
^^^first entry^^^
#8 0x00007fef4eb7815d in psp::CUPSManager::setupJobContextData(psp::JobData&) (this=0x329c0e0, rData=...) at vcl/unx/generic/printer/cupsmgr.cxx:566
since...
commit 80255dcde14755bb4a342b7392fb26d27580ff6d
Date: Sun May 30 19:29:07 2021 +0200
vcl unix : use std::thread in PPDParser::getParser
Change-Id: I3c66e23568e388425de9ee07f2d7606f4df0cfd3
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/116750
Tested-by: Caolán McNamara <caolanm@redhat.com>
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
-rw-r--r-- | vcl/unx/generic/printer/ppdparser.cxx | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/vcl/unx/generic/printer/ppdparser.cxx b/vcl/unx/generic/printer/ppdparser.cxx index ea03299ed7fb..8de73fa860b1 100644 --- a/vcl/unx/generic/printer/ppdparser.cxx +++ b/vcl/unx/generic/printer/ppdparser.cxx @@ -531,7 +531,7 @@ OUString PPDParser::getPPDFile( const OUString& rFile ) const PPDParser* PPDParser::getParser( const OUString& rFile ) { - static std::mutex aMutex; + static std::recursive_mutex aMutex; std::lock_guard aGuard( aMutex ); OUString aFile = rFile; |