path: root/wscript
diff options
authorJames Ross-Gowan <>2015-12-07 18:51:33 +1100
committerJames Ross-Gowan <>2015-12-20 21:06:02 +1100
commit7558d1ed7b86dbd23504f743d27973556ed68dff (patch)
tree85021c91c3dc91d690636aa3230154b3300cf27d /wscript
parent0563eb914f2d4243c00bbd31175658e595dd3763 (diff)
win32: input: use Vista CancelIoEx
libwaio was added due to the complete inability to cancel synchronous I/O cleanly using the public Windows API in Windows XP. Even calling TerminateThread on the thread performing I/O was a bad solution, because the TerminateThread function in XP would leak the thread's stack. In Vista and up, however, this is no longer a problem. CancelIoEx can cancel synchronous I/O running on other threads, allowing the thread to exit cleanly, so replace libwaio usage with native Vista API functions. It should be noted that this change also removes the hack added in 8a27025 for preventing a deadlock that only seemed to happen in Windows XP. KB2009703 says that Vista and up are not affected by this, due to a change in the implementation of GetFileType, so the hack should not be needed anymore.
Diffstat (limited to 'wscript')
1 files changed, 0 insertions, 6 deletions
diff --git a/wscript b/wscript
index 9d09170fac..00a67009a8 100644
--- a/wscript
+++ b/wscript
@@ -199,12 +199,6 @@ iconv support use --disable-iconv.",
'deps_any': [ 'os-win32', 'os-cygwin' ],
'func': check_true
}, {
- 'name': '--waio',
- 'desc': 'libwaio for win32',
- 'deps': [ 'os-win32', 'mingw' ],
- 'func': check_libs(['waio'],
- check_statement('waio/waio.h', 'waio_alloc(0, 0, 0, 0)')),
- }, {
'name': '--termios',
'desc': 'termios',
'func': check_headers('termios.h', 'sys/termios.h'),