Unverified Commit 9a36404e authored by Will's avatar Will Committed by GitHub

Merge pull request #24 from libp2p/fix/re-disable-write-coalescing

Revert "re-enable write coalescing"
parents 42b17e90 c4368703
......@@ -422,20 +422,25 @@ func (s *Session) sendLoop() error {
return nil
}
writer := pool.Writer{W: s.conn}
writer := s.conn
var writeTimeout *time.Timer
var writeTimeoutCh <-chan time.Time
if s.config.WriteCoalesceDelay > 0 {
writeTimeout = time.NewTimer(s.config.WriteCoalesceDelay)
defer writeTimeout.Stop()
// FIXME: https://github.com/libp2p/go-libp2p/issues/644
// Write coalescing is disabled for now.
writeTimeoutCh = writeTimeout.C
} else {
ch := make(chan time.Time)
close(ch)
writeTimeoutCh = ch
}
//writer := pool.Writer{W: s.conn}
//var writeTimeout *time.Timer
//var writeTimeoutCh <-chan time.Time
//if s.config.WriteCoalesceDelay > 0 {
// writeTimeout = time.NewTimer(s.config.WriteCoalesceDelay)
// defer writeTimeout.Stop()
// writeTimeoutCh = writeTimeout.C
//} else {
// ch := make(chan time.Time)
// close(ch)
// writeTimeoutCh = ch
//}
for {
// yield after processing the last message, if we've shutdown.
......@@ -453,29 +458,29 @@ func (s *Session) sendLoop() error {
case buf = <-s.sendCh:
case <-s.shutdownCh:
return nil
default:
select {
case buf = <-s.sendCh:
case <-s.shutdownCh:
return nil
case <-writeTimeoutCh:
if err := writer.Flush(); err != nil {
if os.IsTimeout(err) {
err = ErrConnectionWriteTimeout
}
return err
}
select {
case buf = <-s.sendCh:
case <-s.shutdownCh:
return nil
}
if writeTimeout != nil {
writeTimeout.Reset(s.config.WriteCoalesceDelay)
}
}
//default:
// select {
// case buf = <-s.sendCh:
// case <-s.shutdownCh:
// return nil
// case <-writeTimeoutCh:
// if err := writer.Flush(); err != nil {
// if os.IsTimeout(err) {
// err = ErrConnectionWriteTimeout
// }
// return err
// }
// select {
// case buf = <-s.sendCh:
// case <-s.shutdownCh:
// return nil
// }
// if writeTimeout != nil {
// writeTimeout.Reset(s.config.WriteCoalesceDelay)
// }
// }
}
if err := extendWriteDeadline(); err != nil {
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment