@@ -153,6 +153,12 @@ func (s *receiveStream) readImpl(p []byte) (bool /*stream completed */, int, err
}
+ // [Psiphon]
+ // Stop timer to immediately release resources
+ if deadlineTimer != nil {
+ deadlineTimer.Reset(time.Time{})
+ }
+
if bytesRead > len(p) {
return false, bytesRead, fmt.Errorf("BUG: bytesRead (%d) > len(p) (%d) in stream.Read", bytesRead, len(p))
@@ -135,6 +135,12 @@ func (s *sendStream) Write(p []byte) (int, error) {
s.mutex.Lock()
if s.closeForShutdownErr != nil {
return bytesWritten, s.closeForShutdownErr
} else if s.cancelWriteErr != nil {
@@ -545,6 +545,10 @@ runLoop:
+ s.timer.Reset(time.Time{})
if err := s.handleCloseError(closeErr); err != nil {
s.logger.Infof("Handling close error failed: %s", err)