Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
dotNET Platform
runtime
提交
160fd45f
R
runtime
项目概览
dotNET Platform
/
runtime
11 个月 前同步成功
通知
1
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
R
runtime
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
未验证
提交
160fd45f
编写于
4月 11, 2021
作者:
J
Jan Kotas
提交者:
GitHub
4月 11, 2021
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Simplify RuntimeType.ClearCache (#51070)
上级
dcf81657
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
3 addition
and
22 deletion
+3
-22
src/coreclr/System.Private.CoreLib/src/System/Runtime/InteropServices/GCHandle.CoreCLR.cs
...ib/src/System/Runtime/InteropServices/GCHandle.CoreCLR.cs
+1
-1
src/coreclr/System.Private.CoreLib/src/System/RuntimeType.CoreCLR.cs
.../System.Private.CoreLib/src/System/RuntimeType.CoreCLR.cs
+2
-21
未找到文件。
src/coreclr/System.Private.CoreLib/src/System/Runtime/InteropServices/GCHandle.CoreCLR.cs
浏览文件 @
160fd45f
...
...
@@ -26,7 +26,7 @@ public partial struct GCHandle
#endif
[
MethodImpl
(
MethodImplOptions
.
InternalCall
)]
private
static
extern
void
InternalSet
(
IntPtr
handle
,
object
?
value
);
internal
static
extern
void
InternalSet
(
IntPtr
handle
,
object
?
value
);
[
MethodImpl
(
MethodImplOptions
.
InternalCall
)]
internal
static
extern
object
?
InternalCompareExchange
(
IntPtr
handle
,
object
?
value
,
object
?
oldValue
);
...
...
src/coreclr/System.Private.CoreLib/src/System/RuntimeType.CoreCLR.cs
浏览文件 @
160fd45f
...
...
@@ -2426,27 +2426,8 @@ internal void ClearCache()
return
;
}
// Loop until the cache is successfully zero'd out.
do
{
// If the GCHandle doesn't wrap a cache yet, there's nothing more to do.
RuntimeTypeCache
?
existingCache
=
(
RuntimeTypeCache
?)
GCHandle
.
InternalGet
(
m_cache
);
if
(
existingCache
is
null
)
{
return
;
}
// Create a new, empty cache to replace the old one and try to substitute it in.
var
newCache
=
new
RuntimeTypeCache
(
this
);
if
(
ReferenceEquals
(
GCHandle
.
InternalCompareExchange
(
m_cache
,
newCache
,
existingCache
),
existingCache
))
{
// We were successful, so there's nothing more to do.
return
;
}
// We raced with someone else to initialize the cache. Try again.
}
while
(
true
);
// Set the GCHandle to null. The cache will be re-created next time it is needed.
GCHandle
.
InternalSet
(
m_cache
,
null
);
}
private
string
?
GetDefaultMemberName
()
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录