Kaydet (Commit) abb19edc authored tarafından Luboš Luňák's avatar Luboš Luňák

blacklist ocExternal for calc's threaded calculations

Opcode ocExternal is used for functions implemented as UNO calls,
which has a number of problems:
- ooo#118213-2 contains GETEOMONTH(), which maps to ocExternal, which
  calls AnalysisAddIn::getEomonth() in scaddins, which ends up calling
  ScModelObj::getPropertyValue(), which deadlocks on SolarMutex
- it uses ScUnoAddInCollection class, which uses delayed initialization
  (even though it's created on-demand), which is not thread-safe; however,
  it seems that the initialization is generally done already while loading
  a file, so this is possibly in practice safe
- who knows what all kinds of race conditions there are in all the functions
  this may call via UNO

Change-Id: I80c4264102b8bc492853852c2c12e5cd2a8ea99e
Reviewed-on: https://gerrit.libreoffice.org/55382Reviewed-by: 's avatarMichael Meeks <michael.meeks@collabora.com>
Tested-by: 's avatarJenkins <ci@libreoffice.org>
üst 584a9e96
......@@ -1321,7 +1321,8 @@ void ScTokenArray::CheckForThreading( OpCode eOp )
ocCell,
ocInfo,
ocStyle,
ocDBSum
ocDBSum,
ocExternal
});
// We only call this if it was already disabled
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment