Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
int
Rust
提交
66488a50
R
Rust
项目概览
int
/
Rust
11 个月 前同步成功
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
R
Rust
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
66488a50
编写于
4月 01, 2018
作者:
J
John Kåre Alsaker
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Make Session.dependency_formats thread-safe
上级
cbf8ad4a
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
5 addition
and
4 deletion
+5
-4
src/librustc/middle/dependency_format.rs
src/librustc/middle/dependency_format.rs
+2
-1
src/librustc/session/mod.rs
src/librustc/session/mod.rs
+3
-3
未找到文件。
src/librustc/middle/dependency_format.rs
浏览文件 @
66488a50
...
...
@@ -94,13 +94,14 @@ pub enum Linkage {
pub
fn
calculate
<
'a
,
'tcx
>
(
tcx
:
TyCtxt
<
'a
,
'tcx
,
'tcx
>
)
{
let
sess
=
&
tcx
.sess
;
let
mut
fmts
=
sess
.dependency_formats
.borrow_mut
();
let
mut
fmts
=
FxHashMap
();
for
&
ty
in
sess
.crate_types
.borrow
()
.iter
()
{
let
linkage
=
calculate_type
(
tcx
,
ty
);
verify_ok
(
tcx
,
&
linkage
);
fmts
.insert
(
ty
,
linkage
);
}
sess
.abort_if_errors
();
sess
.dependency_formats
.set
(
fmts
);
}
fn
calculate_type
<
'a
,
'tcx
>
(
tcx
:
TyCtxt
<
'a
,
'tcx
,
'tcx
>
,
...
...
src/librustc/session/mod.rs
浏览文件 @
66488a50
...
...
@@ -22,7 +22,7 @@
use
session
::
search_paths
::
PathKind
;
use
session
::
config
::{
DebugInfoLevel
,
OutputType
};
use
ty
::
tls
;
use
util
::
nodemap
::{
FxHash
Map
,
FxHash
Set
};
use
util
::
nodemap
::{
FxHashSet
};
use
util
::
common
::{
duration_to_secs_str
,
ErrorReported
};
use
util
::
common
::
ProfileQueriesMsg
;
...
...
@@ -93,7 +93,7 @@ pub struct Session {
pub
plugin_llvm_passes
:
OneThread
<
RefCell
<
Vec
<
String
>>>
,
pub
plugin_attributes
:
OneThread
<
RefCell
<
Vec
<
(
String
,
AttributeType
)
>>>
,
pub
crate_types
:
Once
<
Vec
<
config
::
CrateType
>>
,
pub
dependency_formats
:
RefCell
<
dependency_format
::
Dependencies
>
,
pub
dependency_formats
:
Once
<
dependency_format
::
Dependencies
>
,
/// The crate_disambiguator is constructed out of all the `-C metadata`
/// arguments passed to the compiler. Its value together with the crate-name
/// forms a unique global identifier for the crate. It is used to allow
...
...
@@ -1097,7 +1097,7 @@ pub fn build_session_(
plugin_llvm_passes
:
OneThread
::
new
(
RefCell
::
new
(
Vec
::
new
())),
plugin_attributes
:
OneThread
::
new
(
RefCell
::
new
(
Vec
::
new
())),
crate_types
:
Once
::
new
(),
dependency_formats
:
RefCell
::
new
(
FxHashMap
()
),
dependency_formats
:
Once
::
new
(
),
crate_disambiguator
:
Once
::
new
(),
features
:
Once
::
new
(),
recursion_limit
:
Once
::
new
(),
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录