Closed mafredri closed 2 years ago
We now create a new header slice instead of taking a sendLock as this is a rare occurance.
sendLock
This should fix some rare race conditions with simultaneous reads/writes to sendHdr.
sendHdr
I believe I've identified another potential race condition in (*Session).waitForSendErr which might warrant further investigation:
(*Session).waitForSendErr
(*Stream).write
s.sendHdr
(*Session).send
s.sendCh
waitForSendErr
write
All committers have signed the CLA.
Thanks!
We now create a new header slice instead of taking a
sendLock
as this is a rare occurance.This should fix some rare race conditions with simultaneous reads/writes to
sendHdr
.I believe I've identified another potential race condition in
(*Session).waitForSendErr
which might warrant further investigation:(*Stream).write
calls(*Session).waitForSendErr
, passings.sendHdr
(whilst locked)(*Session).waitForSendErr
passess.sendHdr
on to(*Session).send
vias.sendCh
(which is buffered)waitForSendErr
returns,write
exists and leavess.sendHdr
unprotected