Commit Graph

10 Commits

Author SHA1 Message Date
Saikrishna Arcot cb2f730c3d [python] Prevent a potential multithreading crash
If there are daemon thread(s) running, and the main thread exits, there
is a chance of a SIGABRT happening if one of the daemon threads happens
to be returning from a C call back to Python code. This is partly
because of how the unwinder works (it uses a special exception
`abi::__forced_unwind` to unwind the stack). If this exception happens
to pass through the destructor of a C++ class (specifically, the
`SWIG_Python_Thread_Allow` class here), then that is considered an
error, and the unwinder will call `std::terminate`, resulting in a
SIGABRT.

More details about this issue are in #2396.

Fixes #2396.
2022-10-21 14:26:41 -07:00
William S Fulton 9c50887daa Python 3.9 support
Remove PyEval_InitThreads() call for Python 3.7 and later as Python calls
it automatically now. This removes a deprecation warning when using Python 3.9.

https://docs.python.org/3/c-api/init.html#c.PyEval_InitThreads
2020-08-27 19:37:26 +01:00
Olly Betts 7c034ead32 Remove special handling for Python < 2.6
See #701.
2018-06-08 09:34:48 +12:00
Marcelo Matus ae761ca3ba fix extra calls to TypeQuery for 'char *' and 'wchar_t *'
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@7968 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2005-12-10 20:20:19 +00:00
Marcelo Matus 76415ec9a8 minor fix for threads
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@7967 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2005-12-10 10:11:14 +00:00
Marcelo Matus efcc7aeacf fixes for the examples and tcl to use the old Tcl_SetResult()... methods
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@7962 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2005-12-09 22:39:43 +00:00
Marcelo Matus 8b7fb37a59 more threads cleaning
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@7944 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2005-12-07 22:25:05 +00:00
Marcelo Matus 2eeef5275d simplify the thread implementation, use feature 'nothread' to disable threads instead of 'thread' to enable them, plus other fixes around threads
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@7933 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2005-12-06 19:35:03 +00:00
Marcelo Matus 1c7071040a more threads code
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@7930 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2005-12-06 07:20:13 +00:00
Marcelo Matus 0fd2fe23cf add thread support based in proposal #398495 by Joseph Winston
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@7929 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2005-12-06 06:39:24 +00:00