| Index: engine/SCons/Platform/win32.py
|
| ===================================================================
|
| --- engine/SCons/Platform/win32.py (revision 4802)
|
| +++ engine/SCons/Platform/win32.py (working copy)
|
| @@ -41,6 +41,33 @@
|
| from SCons.Platform import TempFileMunge
|
| import SCons.Util
|
|
|
| +#NACL_CHANGE(bradnelson) - FROM THIS:
|
| +#NACL_CHANGE(bradnelson) - TO THIS:
|
| +import threading
|
| +
|
| +# Monkey patch os.spawnve on Windows to become thread safe
|
| +from os import spawnve as old_spawnve
|
| +
|
| +spawn_lock = threading.Lock()
|
| +
|
| +def new_spawnve(mode, file, args, env):
|
| + spawn_lock.acquire()
|
| + try:
|
| + if mode == os.P_WAIT:
|
| + ret = old_spawnve(os.P_NOWAIT, file, args, env)
|
| + else:
|
| + ret = old_spawnve(mode, file, args, env)
|
| + finally:
|
| + spawn_lock.release()
|
| + if mode == os.P_WAIT:
|
| + pid, status = os.waitpid(ret, 0)
|
| + ret = status >> 8
|
| + return ret
|
| +
|
| +os.spawnve = new_spawnve
|
| +
|
| +#NACL_CHANGE(bradnelson) - END CHANGES.
|
| +
|
| try:
|
| import msvcrt
|
| import win32api
|
|
|