Chromium Code Reviews| Index: remoting/protocol/buffered_socket_writer.cc |
| diff --git a/remoting/protocol/buffered_socket_writer.cc b/remoting/protocol/buffered_socket_writer.cc |
| index db069b2ef8c3c8b500ad22f77199566b4ffdd6f7..5fdeb61218df861f2a1ed067412d46e0b2b5a1e0 100644 |
| --- a/remoting/protocol/buffered_socket_writer.cc |
| +++ b/remoting/protocol/buffered_socket_writer.cc |
| @@ -56,11 +56,11 @@ void BufferedSocketWriterBase::Init(net::Socket* socket, |
| bool BufferedSocketWriterBase::Write( |
| scoped_refptr<net::IOBufferWithSize> data, Task* done_task) { |
| - base::AutoLock auto_lock(lock_); |
| - if (!socket_) |
| - return false; |
| - queue_.push_back(new PendingPacket(data, done_task)); |
| - buffer_size_ += data->size(); |
| + { |
| + base::AutoLock auto_lock(lock_); |
| + queue_.push_back(new PendingPacket(data, done_task)); |
| + buffer_size_ += data->size(); |
| + } |
|
Wez
2011/06/30 18:27:31
nit: Does this belong in this CL?
Sergey Ulanov
2011/06/30 20:55:24
It's not strictly required for this CL, just a sma
|
| message_loop_->PostTask( |
| FROM_HERE, NewRunnableMethod(this, &BufferedSocketWriterBase::DoWrite)); |
| return true; |
| @@ -75,11 +75,8 @@ void BufferedSocketWriterBase::DoWrite() { |
| return; |
| // Don't write after Close(). |
| - { |
| - base::AutoLock auto_lock(lock_); |
| - if (closed_) |
| - return; |
| - } |
| + if (closed_) |
| + return; |
| while (true) { |
| net::IOBuffer* current_packet; |
| @@ -133,8 +130,9 @@ void BufferedSocketWriterBase::OnWritten(int result) { |
| } |
| void BufferedSocketWriterBase::HandleError(int result) { |
| - base::AutoLock auto_lock(lock_); |
| closed_ = true; |
|
Wez
2011/06/30 18:27:31
nit: Verify notified on correct thread?
Sergey Ulanov
2011/06/30 20:55:24
Done.
|
| + |
| + base::AutoLock auto_lock(lock_); |
| STLDeleteElements(&queue_); |
| // Notify subclass that an error is received. |
| @@ -152,7 +150,7 @@ int BufferedSocketWriterBase::GetBufferChunks() { |
| } |
| void BufferedSocketWriterBase::Close() { |
| - base::AutoLock auto_lock(lock_); |
| + DCHECK_EQ(message_loop_, MessageLoop::current()); |
| closed_ = true; |
| } |