Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
dotNET Platform
runtime
提交
edfca3c2
R
runtime
项目概览
dotNET Platform
/
runtime
12 个月 前同步成功
通知
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,发现更多精彩内容 >>
未验证
提交
edfca3c2
编写于
7月 10, 2022
作者:
C
campersau
提交者:
GitHub
7月 09, 2022
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Pass CancellationToken to Http2Connection SetupAsync (#70906)
* Pass cancellation token to Http2Connection SetupAsync * PR feedback
上级
ef293899
变更
2
显示空白变更内容
内联
并排
Showing
2 changed file
with
16 addition
and
3 deletion
+16
-3
src/libraries/System.Net.Http/src/System/Net/Http/SocketsHttpHandler/Http2Connection.cs
...src/System/Net/Http/SocketsHttpHandler/Http2Connection.cs
+9
-2
src/libraries/System.Net.Http/src/System/Net/Http/SocketsHttpHandler/HttpConnectionPool.cs
.../System/Net/Http/SocketsHttpHandler/HttpConnectionPool.cs
+7
-1
未找到文件。
src/libraries/System.Net.Http/src/System/Net/Http/SocketsHttpHandler/Http2Connection.cs
浏览文件 @
edfca3c2
...
...
@@ -174,7 +174,7 @@ public Http2Connection(HttpConnectionPool pool, Stream stream)
private
object
SyncObject
=>
_httpStreams
;
public
async
ValueTask
SetupAsync
()
public
async
ValueTask
SetupAsync
(
CancellationToken
cancellationToken
)
{
try
{
...
...
@@ -208,7 +208,7 @@ public async ValueTask SetupAsync()
BinaryPrimitives
.
WriteUInt32BigEndian
(
_outgoingBuffer
.
AvailableSpan
,
windowUpdateAmount
);
_outgoingBuffer
.
Commit
(
4
);
await
_stream
.
WriteAsync
(
_outgoingBuffer
.
ActiveMemory
).
ConfigureAwait
(
false
);
await
_stream
.
WriteAsync
(
_outgoingBuffer
.
ActiveMemory
,
cancellationToken
).
ConfigureAwait
(
false
);
_rttEstimator
.
OnInitialSettingsSent
();
_outgoingBuffer
.
Discard
(
_outgoingBuffer
.
ActiveLength
);
...
...
@@ -217,6 +217,13 @@ public async ValueTask SetupAsync()
catch
(
Exception
e
)
{
Dispose
();
if
(
e
is
OperationCanceledException
oce
&&
oce
.
CancellationToken
==
cancellationToken
)
{
// Note, AddHttp2ConnectionAsync handles this OCE separately so don't wrap it.
throw
;
}
throw
new
IOException
(
SR
.
net_http_http2_connection_not_established
,
e
);
}
...
...
src/libraries/System.Net.Http/src/System/Net/Http/SocketsHttpHandler/HttpConnectionPool.cs
浏览文件 @
edfca3c2
...
...
@@ -1561,11 +1561,17 @@ private async ValueTask<Http2Connection> ConstructHttp2ConnectionAsync(Stream st
Http2Connection
http2Connection
=
new
Http2Connection
(
this
,
stream
);
try
{
await
http2Connection
.
SetupAsync
().
ConfigureAwait
(
false
);
await
http2Connection
.
SetupAsync
(
cancellationToken
).
ConfigureAwait
(
false
);
}
catch
(
Exception
e
)
{
// Note, SetupAsync will dispose the connection if there is an exception.
if
(
e
is
OperationCanceledException
oce
&&
oce
.
CancellationToken
==
cancellationToken
)
{
// Note, AddHttp2ConnectionAsync handles this OCE separatly so don't wrap it.
throw
;
}
throw
new
HttpRequestException
(
SR
.
net_http_client_execution_error
,
e
);
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录