diff options
author | jabdelmalek@google.com <jabdelmalek@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-04-06 20:33:36 +0000 |
---|---|---|
committer | jabdelmalek@google.com <jabdelmalek@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-04-06 20:33:36 +0000 |
commit | 1e9499c21c23b52391d952572bd9059df532efcb (patch) | |
tree | bd96f3ed1bd4226b062085316346c77e6bb999ab /ipc/ipc_sync_message.cc | |
parent | ae2e0f96d38961c160bf54962a55eb1f44a0f943 (diff) | |
download | chromium_src-1e9499c21c23b52391d952572bd9059df532efcb.zip chromium_src-1e9499c21c23b52391d952572bd9059df532efcb.tar.gz chromium_src-1e9499c21c23b52391d952572bd9059df532efcb.tar.bz2 |
Allow synchronous messages to be sent from threads other than the main thread. This simplifies code that needs to do this (i.e. webkit db and file threads).
BUG=23423
Review URL: http://codereview.chromium.org/1601005
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@43752 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ipc/ipc_sync_message.cc')
-rw-r--r-- | ipc/ipc_sync_message.cc | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/ipc/ipc_sync_message.cc b/ipc/ipc_sync_message.cc index 23f3d16..8ae65fa 100644 --- a/ipc/ipc_sync_message.cc +++ b/ipc/ipc_sync_message.cc @@ -1,4 +1,4 @@ -// Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. +// Copyright (c) 2010 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. @@ -9,16 +9,18 @@ #endif #include <stack> +#include "base/atomic_sequence_num.h" #include "base/logging.h" #include "base/waitable_event.h" #include "ipc/ipc_sync_message.h" namespace IPC { -uint32 SyncMessage::next_id_ = 0; #define kSyncMessageHeaderSize 4 -base::WaitableEvent* dummy_event = new base::WaitableEvent(true, true); +static base::AtomicSequenceNumber g_next_id(base::LINKER_INITIALIZED); + +static base::WaitableEvent* dummy_event = new base::WaitableEvent(true, true); SyncMessage::SyncMessage( int32 routing_id, @@ -34,7 +36,7 @@ SyncMessage::SyncMessage( // Add synchronous message data before the message payload. SyncHeader header; - header.message_id = ++next_id_; + header.message_id = g_next_id.GetNext(); WriteSyncHeader(this, header); } |