瀏覽代碼

scons: Monkey patch os.spawnve on Windows to become thread safe.

See also:
- http://bugs.python.org/issue6476
- http://scons.tigris.org/issues/show_bug.cgi?id=2449
tags/mesa_7_5
José Fonseca 17 年之前
父節點
當前提交
7325c1ebc8
共有 2 個檔案被更改,包括 29 行新增 和 0 行删除
  1. 27
    0
      scons/fixes.py
  2. 2
    0
      scons/gallium.py

+ 27
- 0
scons/fixes.py 查看文件

@@ -0,0 +1,27 @@
import sys

# Monkey patch os.spawnve on windows to become thread safe
if sys.platform == 'win32':
import os
import threading
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



+ 2
- 0
scons/gallium.py 查看文件

@@ -38,6 +38,8 @@ import SCons.Action
import SCons.Builder
import SCons.Scanner

import fixes


def quietCommandLines(env):
# Quiet command lines

Loading…
取消
儲存