-
-
Notifications
You must be signed in to change notification settings - Fork 31.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[WIP] bpo-32592: Drop support for Windows Vista #5231
Changes from 1 commit
1a83ced
7dc2b5d
764f4a8
747ee70
1ed070d
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -34,58 +34,13 @@ | |
#define WIN32_LEAN_AND_MEAN | ||
#include <windows.h> | ||
|
||
/* options */ | ||
/* non-emulated condition variables are provided for those that want | ||
* to target Windows Vista. Modify this macro to enable them. | ||
*/ | ||
#ifndef _PY_EMULATED_WIN_CV | ||
#define _PY_EMULATED_WIN_CV 1 /* use emulated condition variables */ | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Isn't removing this a mistake? I think the There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Hum, this code seems to sensitive and my change may conflict with https://bugs.python.org/issue29871 so I reverted this change and will open a new dedicated PR. |
||
#endif | ||
|
||
/* fall back to emulation if not targeting Vista */ | ||
#if !defined NTDDI_VISTA || NTDDI_VERSION < NTDDI_VISTA | ||
#undef _PY_EMULATED_WIN_CV | ||
#define _PY_EMULATED_WIN_CV 1 | ||
#endif | ||
|
||
#if _PY_EMULATED_WIN_CV | ||
|
||
typedef CRITICAL_SECTION PyMUTEX_T; | ||
|
||
/* The ConditionVariable object. From XP onwards it is easily emulated | ||
with a Semaphore. | ||
Semaphores are available on Windows XP (2003 server) and later. | ||
We use a Semaphore rather than an auto-reset event, because although | ||
an auto-resent event might appear to solve the lost-wakeup bug (race | ||
condition between releasing the outer lock and waiting) because it | ||
maintains state even though a wait hasn't happened, there is still | ||
a lost wakeup problem if more than one thread are interrupted in the | ||
critical place. A semaphore solves that, because its state is | ||
counted, not Boolean. | ||
Because it is ok to signal a condition variable with no one | ||
waiting, we need to keep track of the number of | ||
waiting threads. Otherwise, the semaphore's state could rise | ||
without bound. This also helps reduce the number of "spurious wakeups" | ||
that would otherwise happen. | ||
*/ | ||
|
||
typedef struct _PyCOND_T | ||
{ | ||
HANDLE sem; | ||
int waiting; /* to allow PyCOND_SIGNAL to be a no-op */ | ||
} PyCOND_T; | ||
|
||
#else /* !_PY_EMULATED_WIN_CV */ | ||
|
||
/* Use native Win7 primitives if build target is Win7 or higher */ | ||
/* Use native Win7 primitives */ | ||
|
||
/* SRWLOCK is faster and better than CriticalSection */ | ||
typedef SRWLOCK PyMUTEX_T; | ||
|
||
typedef CONDITION_VARIABLE PyCOND_T; | ||
|
||
#endif /* _PY_EMULATED_WIN_CV */ | ||
|
||
#endif /* _POSIX_THREADS, NT_THREADS */ | ||
|
||
#endif /* Py_INTERNAL_CONDVAR_H */ |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
Drop support for Windows Vista. Windows Vista extended support ended in | ||
April 2017. As stated in :pep:`11`, Python 3.7 drops support for Windows | ||
Vista and now requires Windows 7 or newer. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Maybe you could change the comment before
#define Py_HAVE_CONDVAR
?There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
in fact, should we remove all the references to Vista when we drop the support of Vista ?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I updated the comment.