Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
lwm1986
roslyn
提交
c1a8ad5e
R
roslyn
项目概览
lwm1986
/
roslyn
与 Fork 源项目一致
从无法访问的项目Fork
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
R
roslyn
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
c1a8ad5e
编写于
3月 10, 2016
作者:
J
Jared Parsons
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #9634 from jaredpar/fix-9630
Fix race in MultipleSimultaneousCompiles
上级
178c5da5
afaa0369
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
13 addition
and
8 deletion
+13
-8
src/Compilers/Server/VBCSCompilerTests/CompilerServerTests.cs
...Compilers/Server/VBCSCompilerTests/CompilerServerTests.cs
+13
-8
未找到文件。
src/Compilers/Server/VBCSCompilerTests/CompilerServerTests.cs
浏览文件 @
c1a8ad5e
...
...
@@ -224,12 +224,12 @@ public Process StartProcess(string fileName, string arguments, string workingDir
additionalEnvironmentVars
:
AddForLoggingEnvironmentVars
(
additionalEnvironmentVars
));
}
private
DisposableFile
GetResultFile
(
TempDirectory
directory
,
string
resultFileName
)
private
static
DisposableFile
GetResultFile
(
TempDirectory
directory
,
string
resultFileName
)
{
return
new
DisposableFile
(
Path
.
Combine
(
directory
.
Path
,
resultFileName
));
}
private
ProcessResult
RunCompilerOutput
(
TempFile
file
)
private
static
ProcessResult
RunCompilerOutput
(
TempFile
file
)
{
return
ProcessUtilities
.
Run
(
file
.
Path
,
""
,
Path
.
GetDirectoryName
(
file
.
Path
));
}
...
...
@@ -906,10 +906,8 @@ public static void Main()
GC
.
KeepAlive
(
rootDirectory
);
}
private
async
Task
RunCompilationAsync
(
RequestLanguage
language
,
string
pipeName
,
int
i
)
private
async
static
Task
<
DisposableFile
>
RunCompilationAsync
(
RequestLanguage
language
,
string
pipeName
,
int
i
,
TempDirectory
compilationDir
)
{
var
compilationDir
=
Temp
.
CreateDirectory
();
TempFile
sourceFile
;
string
exeFileName
;
string
prefix
;
...
...
@@ -961,9 +959,10 @@ End Sub
Assert
.
True
(
result
.
RanOnServer
);
// Run the EXE and verify it prints the desired output.
var
exeFile
=
Temp
.
AddFile
(
GetResultFile
(
compilationDir
,
exeFileName
)
);
var
exeFile
=
GetResultFile
(
compilationDir
,
exeFileName
);
var
exeResult
=
RunCompilerOutput
(
exeFile
);
Assert
.
Equal
(
$"
{
prefix
}
Hello number
{
i
}
\r\n"
,
exeResult
.
Output
);
return
exeFile
;
}
[
WorkItem
(
997372
,
"http://vstfdevdiv:8080/DevDiv2/DevDiv/_workitems/edit/997372"
)]
...
...
@@ -976,17 +975,23 @@ public async Task MultipleSimultaneousCompiles()
{
// Run this many compiles simultaneously in different directories.
const
int
numberOfCompiles
=
20
;
var
tasks
=
new
Task
[
numberOfCompiles
];
var
tasks
=
new
Task
<
DisposableFile
>
[
numberOfCompiles
];
for
(
int
i
=
0
;
i
<
numberOfCompiles
;
++
i
)
{
var
language
=
i
%
2
==
0
?
RequestLanguage
.
CSharpCompile
:
RequestLanguage
.
VisualBasicCompile
;
tasks
[
i
]
=
RunCompilationAsync
(
language
,
serverData
.
PipeName
,
i
);
var
compilationDir
=
Temp
.
CreateDirectory
();
tasks
[
i
]
=
RunCompilationAsync
(
language
,
serverData
.
PipeName
,
i
,
compilationDir
);
}
await
Task
.
WhenAll
(
tasks
);
await
serverData
.
Verify
(
numberOfCompiles
,
numberOfCompiles
);
foreach
(
var
task
in
tasks
)
{
Temp
.
AddFile
(
task
.
Result
);
}
}
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录