Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(74)

Side by Side Diff: net/curvecp/messenger.cc

Issue 7825026: Revert "Currently, base/timer.cc calls PostTask with FROM_HERE as the Location, (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 9 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « net/base/network_change_notifier_win.cc ('k') | net/disk_cache/backend_impl.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "net/curvecp/messenger.h" 5 #include "net/curvecp/messenger.h"
6 6
7 #include "base/logging.h" 7 #include "base/logging.h"
8 #include "base/message_loop.h" 8 #include "base/message_loop.h"
9 #include "net/base/io_buffer.h" 9 #include "net/base/io_buffer.h"
10 #include "net/base/net_errors.h" 10 #include "net/base/net_errors.h"
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after
87 } 87 }
88 88
89 int Messenger::Write(IOBuffer* buf, int buf_len, CompletionCallback* callback) { 89 int Messenger::Write(IOBuffer* buf, int buf_len, CompletionCallback* callback) {
90 DCHECK(CalledOnValidThread()); 90 DCHECK(CalledOnValidThread());
91 DCHECK(!pending_send_.get()); // Already a write pending! 91 DCHECK(!pending_send_.get()); // Already a write pending!
92 DCHECK(!send_complete_callback_); 92 DCHECK(!send_complete_callback_);
93 DCHECK_LT(0, buf_len); 93 DCHECK_LT(0, buf_len);
94 94
95 int len = send_buffer_.write(buf->data(), buf_len); 95 int len = send_buffer_.write(buf->data(), buf_len);
96 if (!send_timer_.IsRunning()) 96 if (!send_timer_.IsRunning())
97 send_timer_.Start(FROM_HERE, base::TimeDelta(), 97 send_timer_.Start(base::TimeDelta(), this, &Messenger::OnSendTimer);
98 this, &Messenger::OnSendTimer);
99 if (len) 98 if (len)
100 return len; 99 return len;
101 100
102 // We couldn't add data to the send buffer, so block the application. 101 // We couldn't add data to the send buffer, so block the application.
103 pending_send_ = buf; 102 pending_send_ = buf;
104 pending_send_length_ = buf_len; 103 pending_send_length_ = buf_len;
105 send_complete_callback_ = callback; 104 send_complete_callback_ = callback;
106 return ERR_IO_PENDING; 105 return ERR_IO_PENDING;
107 } 106 }
108 107
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after
177 176
178 // If the send timer fired while we were waiting for this send to complete, 177 // If the send timer fired while we were waiting for this send to complete,
179 // we need to manually run the timer now. 178 // we need to manually run the timer now.
180 if (!send_timer_.IsRunning()) 179 if (!send_timer_.IsRunning())
181 OnSendTimer(); 180 OnSendTimer();
182 181
183 if (!send_timeout_timer_.IsRunning()) { 182 if (!send_timeout_timer_.IsRunning()) {
184 LOG(ERROR) << "RttTimeout is " << rtt_.rtt_timeout(); 183 LOG(ERROR) << "RttTimeout is " << rtt_.rtt_timeout();
185 base::TimeDelta delay = 184 base::TimeDelta delay =
186 base::TimeDelta::FromMicroseconds(rtt_.rtt_timeout()); 185 base::TimeDelta::FromMicroseconds(rtt_.rtt_timeout());
187 send_timeout_timer_.Start(FROM_HERE, delay, this, &Messenger::OnTimeout); 186 send_timeout_timer_.Start(delay, this, &Messenger::OnTimeout);
188 } 187 }
189 } 188 }
190 189
191 void Messenger::OnTimeout() { 190 void Messenger::OnTimeout() {
192 LOG(ERROR) << "OnTimeout fired"; 191 LOG(ERROR) << "OnTimeout fired";
193 int64 position = sent_list_.FindPositionOfOldestSentBlock(); 192 int64 position = sent_list_.FindPositionOfOldestSentBlock();
194 // XXXMB - need to verify that we really need to retransmit... 193 // XXXMB - need to verify that we really need to retransmit...
195 if (position >= 0) { 194 if (position >= 0) {
196 rtt_.OnTimeout(); // adjust our send rate. 195 rtt_.OnTimeout(); // adjust our send rate.
197 LOG(ERROR) << "OnTimeout retransmitting: " << position; 196 LOG(ERROR) << "OnTimeout retransmitting: " << position;
(...skipping 10 matching lines...) Expand all
208 DCHECK(!send_timer_.IsRunning()); 207 DCHECK(!send_timer_.IsRunning());
209 208
210 // If the send buffer is empty, then we don't need to keep firing. 209 // If the send buffer is empty, then we don't need to keep firing.
211 if (!send_buffer_.length()) { 210 if (!send_buffer_.length()) {
212 LOG(ERROR) << "OnSendTimer: send_buffer empty"; 211 LOG(ERROR) << "OnSendTimer: send_buffer empty";
213 return; 212 return;
214 } 213 }
215 214
216 // Set the next send timer. 215 // Set the next send timer.
217 LOG(ERROR) << "SendRate is: " << rtt_.send_rate() << "us"; 216 LOG(ERROR) << "SendRate is: " << rtt_.send_rate() << "us";
218 send_timer_.Start(FROM_HERE, 217 send_timer_.Start(base::TimeDelta::FromMicroseconds(rtt_.send_rate()),
219 base::TimeDelta::FromMicroseconds(rtt_.send_rate()), 218 this,
220 this, &Messenger::OnSendTimer); 219 &Messenger::OnSendTimer);
221 220
222 // Create a block from the send_buffer. 221 // Create a block from the send_buffer.
223 if (!sent_list_.is_full()) { 222 if (!sent_list_.is_full()) {
224 scoped_refptr<IOBufferWithSize> buffer = CreateBufferFromSendQueue(); 223 scoped_refptr<IOBufferWithSize> buffer = CreateBufferFromSendQueue();
225 int64 position = sent_list_.CreateBlock(buffer.get()); 224 int64 position = sent_list_.CreateBlock(buffer.get());
226 DCHECK_LE(0, position); 225 DCHECK_LE(0, position);
227 SendMessage(position); 226 SendMessage(position);
228 } 227 }
229 228
230 RecvMessage(); // Try to process an incoming message 229 RecvMessage(); // Try to process an incoming message
(...skipping 131 matching lines...) Expand 10 before | Expand all | Expand 10 after
362 361
363 int rv = packetizer_->SendMessage(key_, 362 int rv = packetizer_->SendMessage(key_,
364 buffer->data(), 363 buffer->data(),
365 sizeof(Message), 364 sizeof(Message),
366 &send_message_callback_); 365 &send_message_callback_);
367 // TODO(mbelshe): Fix me! Deal with the error cases 366 // TODO(mbelshe): Fix me! Deal with the error cases
368 DCHECK(rv == sizeof(Message)); 367 DCHECK(rv == sizeof(Message));
369 } 368 }
370 369
371 } // namespace net 370 } // namespace net
OLDNEW
« no previous file with comments | « net/base/network_change_notifier_win.cc ('k') | net/disk_cache/backend_impl.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698