occt: master 44b80414

Author Committer Branch Timestamp Parent
abv abv master 2019-06-17 15:42:36 master b1492cb3
Affected Issues  0030541: Draw Harness - impossible disabling signals
Changeset 0030775: Foundation Classes - Preserve application-defined top-level exception filter

New overload for method OSD::SetSignal() is added accepting argument specifying how to set or unset handlers.
New enum OSD_SignalMode describes different modes of signal handlers setting used in extended version of OSD::SetSignal().
Method OSD::SignalMode() returns mode set by the last call to SetSignal().
Method OSD::IsFloatingSignalSet() is changed to return value based on actual floating point exception flags (rather than on variable set by previous call to SetSignal()).

Added new method OSD::SetThreadLocalSignal() intended to setup thread-specific handlers (e.g. _set_se_translator() on Windows) and FPE settings.
OSD_ThreadPool and Media_PlayerContext now use new method instead of OSD::SetSignal(), to avoid overriding global handlers.

dsetsignal syntax has been extended to support choice of signal handling mode.

DRAW command OCC30775 is added allowing to test signal handling in multithreaded process.
mod - src/Draw/Draw_BasicCommands.cxx Diff File
mod - src/Media/Media_PlayerContext.cxx Diff File
mod - src/OSD/FILES Diff File
mod - src/OSD/OSD.hxx Diff File
mod - src/OSD/OSD_signal.cxx Diff File
add - src/OSD/OSD_SignalMode.hxx Diff File
mod - src/OSD/OSD_ThreadPool.cxx Diff File
mod - src/QABugs/QABugs_11.cxx Diff File
add - tests/bugs/fclasses/bug30775 Diff File