diff options
author | James Ross-Gowan <rossymiles@gmail.com> | 2014-11-21 17:51:28 +1100 |
---|---|---|
committer | James Ross-Gowan <rossymiles@gmail.com> | 2014-11-22 18:15:10 +1100 |
commit | d2848daebbe3fdb15af5813ab662bd5add8c29b9 (patch) | |
tree | 9c9fb6496c7d21e4353e31036d210c886dc1ddd1 /DOCS/client-api-changes.rst | |
parent | 6a1746b4e387dde10c9409099c1000443f40b4cd (diff) |
lua: subprocess: fix handle inheritance race condition
Normally, when creating a process with inherited handles on Windows, the
process inherits all inheritable handles from the parent, including ones
that were created on other threads. This can cause a race condition,
where unintended handles are copied into the new process, preventing
them from being closed correctly while the process is running. The only
way to prevent this on Windows XP was to serialise the creation of all
inheritable handles, which is clearly unacceptable for libmpv.
Windows Vista solves this problem by allowing programs to specify
exactly which handles are inherited, so do that on Vista and up.
See http://blogs.msdn.com/b/oldnewthing/archive/2011/12/16/10248328.aspx
Diffstat (limited to 'DOCS/client-api-changes.rst')
0 files changed, 0 insertions, 0 deletions