fix(notify): 根治低带宽控制面阻塞与传输写入卡死
- 为控制消息增加优先级、公平调度、队列字节预算和自适应批处理 - 支持可取消的写门等待,收紧 shared/dedicated bulk、stream 和 Reply 写入边界 - 修复 bulk reset/close、连接 handoff 和安全 profile 切换时序 - 保留旧取消与超时错误契约,新增阶段化 TransportSendError - 增加 ReplyCtx、ReplyObjCtx、写超时配置及黑洞连接和竞态回归测试
This commit is contained in:
@@ -211,6 +211,22 @@ func (c *ClientCommon) setClientTransportProtectionProfile(profile transportProt
|
||||
c.transportProtection.Store(&profile)
|
||||
}
|
||||
|
||||
func (c *ClientCommon) installInboundTransitionProfile(profile transportProtectionProfile) *transportProtectionProfile {
|
||||
if c == nil {
|
||||
return nil
|
||||
}
|
||||
next := profile.clone()
|
||||
c.inboundTransitionProfile.Store(&next)
|
||||
return &next
|
||||
}
|
||||
|
||||
func (c *ClientCommon) clearInboundTransitionProfile(expected *transportProtectionProfile) {
|
||||
if c == nil || expected == nil {
|
||||
return
|
||||
}
|
||||
c.inboundTransitionProfile.CompareAndSwap(expected, nil)
|
||||
}
|
||||
|
||||
func (c *ClientCommon) clearClientSecurityProfiles() {
|
||||
if c == nil {
|
||||
return
|
||||
@@ -247,6 +263,7 @@ func (c *ClientCommon) activateClientBootstrapTransportProtection() {
|
||||
if c == nil || !c.securityConfigured {
|
||||
return
|
||||
}
|
||||
c.inboundTransitionProfile.Store(nil)
|
||||
c.resetClientNegotiatedSteadyTransportProtection()
|
||||
c.setClientTransportProtectionProfile(c.securityBootstrap)
|
||||
}
|
||||
@@ -406,3 +423,19 @@ func (c *LogicalConn) applyTransportProtectionProfile(profile transportProtectio
|
||||
state.forwardSecrecyFallback = profile.forwardSecrecyFallback
|
||||
})
|
||||
}
|
||||
|
||||
func (c *LogicalConn) installInboundTransitionProfile(profile transportProtectionProfile) *transportProtectionProfile {
|
||||
if c == nil {
|
||||
return nil
|
||||
}
|
||||
next := profile.clone()
|
||||
c.inboundTransitionProfile.Store(&next)
|
||||
return &next
|
||||
}
|
||||
|
||||
func (c *LogicalConn) clearInboundTransitionProfile(expected *transportProtectionProfile) {
|
||||
if c == nil || expected == nil {
|
||||
return
|
||||
}
|
||||
c.inboundTransitionProfile.CompareAndSwap(expected, nil)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user