mirror of
https://github.com/python/cpython.git
synced 2025-09-16 21:56:14 +00:00
Fixed issue #5122: Synchronize tk load failure check to prevent a
potential deadlock.
This commit is contained in:
parent
55bdb8e4ac
commit
a66cf5bd04
4 changed files with 124 additions and 29 deletions
25
Modules/tkinter.h
Normal file
25
Modules/tkinter.h
Normal file
|
@ -0,0 +1,25 @@
|
|||
#ifndef TKINTER_H
|
||||
#define TKINTER_H
|
||||
|
||||
/* This header is used to share some macros between _tkinter.c and
|
||||
* tkappinit.c */
|
||||
|
||||
/* TK_RELEASE_LEVEL is always one of the following:
|
||||
* TCL_ALPHA_RELEASE 0
|
||||
* TCL_BETA_RELEASE 1
|
||||
* TCL_FINAL_RELEASE 2
|
||||
*/
|
||||
#define TK_VERSION_HEX ((TK_MAJOR_VERSION << 24) | \
|
||||
(TK_MINOR_VERSION << 16) | \
|
||||
(TK_RELEASE_SERIAL << 8) | \
|
||||
(TK_RELEASE_LEVEL << 0))
|
||||
|
||||
/* Protect Tk 8.4.13 and older from a deadlock that happens when trying
|
||||
* to load tk after a failed attempt. */
|
||||
#if TK_VERSION_HEX < 0x08040e02
|
||||
#define TKINTER_PROTECT_LOADTK
|
||||
#define TKINTER_LOADTK_ERRMSG \
|
||||
"Calling Tk_Init again after a previous call failed might deadlock"
|
||||
#endif
|
||||
|
||||
#endif /* !TKINTER_H */
|
Loading…
Add table
Add a link
Reference in a new issue