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

Side by Side Diff: chrome/common/ipc_sync_channel.cc

Issue 39206: NO CODE CHANGE. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: '' Created 11 years, 9 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 | « chrome/common/ipc_sync_channel.h ('k') | chrome/common/ipc_sync_message.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) 2006-2008 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2006-2008 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 "chrome/common/ipc_sync_channel.h" 5 #include "chrome/common/ipc_sync_channel.h"
6 6
7 #include "base/lazy_instance.h" 7 #include "base/lazy_instance.h"
8 #include "base/logging.h" 8 #include "base/logging.h"
9 #include "base/thread_local.h" 9 #include "base/thread_local.h"
10 #include "base/message_loop.h" 10 #include "base/message_loop.h"
(...skipping 370 matching lines...) Expand 10 before | Expand all | Expand 10 after
381 return true; 381 return true;
382 } 382 }
383 383
384 // *this* might get deleted in WaitForReply. 384 // *this* might get deleted in WaitForReply.
385 scoped_refptr<SyncContext> context(sync_context()); 385 scoped_refptr<SyncContext> context(sync_context());
386 if (context->shutdown_event()->IsSignaled()) { 386 if (context->shutdown_event()->IsSignaled()) {
387 delete message; 387 delete message;
388 return false; 388 return false;
389 } 389 }
390 390
391 DCHECK(sync_messages_with_no_timeout_allowed_ || timeout_ms != base::kNoTimeou t); 391 DCHECK(sync_messages_with_no_timeout_allowed_ ||
392 timeout_ms != base::kNoTimeout);
392 SyncMessage* sync_msg = static_cast<SyncMessage*>(message); 393 SyncMessage* sync_msg = static_cast<SyncMessage*>(message);
393 context->Push(sync_msg); 394 context->Push(sync_msg);
394 int message_id = SyncMessage::GetMessageId(*sync_msg); 395 int message_id = SyncMessage::GetMessageId(*sync_msg);
395 WaitableEvent* pump_messages_event = sync_msg->pump_messages_event(); 396 WaitableEvent* pump_messages_event = sync_msg->pump_messages_event();
396 397
397 ChannelProxy::Send(message); 398 ChannelProxy::Send(message);
398 399
399 if (timeout_ms != base::kNoTimeout) { 400 if (timeout_ms != base::kNoTimeout) {
400 // We use the sync message id so that when a message times out, we don't 401 // We use the sync message id so that when a message times out, we don't
401 // confuse it with another send that is either above/below this Send in 402 // confuse it with another send that is either above/below this Send in
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
457 dispatch_watcher_.StartWatching(dispatch_event, this); 458 dispatch_watcher_.StartWatching(dispatch_event, this);
458 sync_context()->DispatchMessages(); 459 sync_context()->DispatchMessages();
459 } else { 460 } else {
460 // We got the reply, timed out or the process shutdown. 461 // We got the reply, timed out or the process shutdown.
461 DCHECK(event == sync_context()->GetSendDoneEvent()); 462 DCHECK(event == sync_context()->GetSendDoneEvent());
462 MessageLoop::current()->Quit(); 463 MessageLoop::current()->Quit();
463 } 464 }
464 } 465 }
465 466
466 } // namespace IPC 467 } // namespace IPC
OLDNEW
« no previous file with comments | « chrome/common/ipc_sync_channel.h ('k') | chrome/common/ipc_sync_message.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698