summaryrefslogtreecommitdiffstats
path: root/chrome/common/ipc_sync_channel.h
diff options
context:
space:
mode:
authorjabdelmalek@google.com <jabdelmalek@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2008-08-12 23:50:30 +0000
committerjabdelmalek@google.com <jabdelmalek@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2008-08-12 23:50:30 +0000
commit8fd8de981b580be7513e7e8be16d4f0249f56ff3 (patch)
treed39b3f1a0e5238c49b365a1fbd342179f7e34e5b /chrome/common/ipc_sync_channel.h
parenta5b94a90c11917b9c7f1d91c9a2069badc22819e (diff)
downloadchromium_src-8fd8de981b580be7513e7e8be16d4f0249f56ff3.zip
chromium_src-8fd8de981b580be7513e7e8be16d4f0249f56ff3.tar.gz
chromium_src-8fd8de981b580be7513e7e8be16d4f0249f56ff3.tar.bz2
Manually refcount ReceivedSyncMsgQueue so that we force it to be destructed on
the listener thread. I've fixed the renderer crashes which were happening because SyncChannel was going away before the listener thread. git-svn-id: svn://svn.chromium.org/chrome/trunk/src@762 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/common/ipc_sync_channel.h')
-rw-r--r--chrome/common/ipc_sync_channel.h4
1 files changed, 3 insertions, 1 deletions
diff --git a/chrome/common/ipc_sync_channel.h b/chrome/common/ipc_sync_channel.h
index bd473d4..fa3566e 100644
--- a/chrome/common/ipc_sync_channel.h
+++ b/chrome/common/ipc_sync_channel.h
@@ -128,7 +128,9 @@ class SyncChannel : public ChannelProxy {
PendingSyncMessageQueue deserializers_;
Lock deserializers_lock_;
- scoped_refptr<ReceivedSyncMsgQueue> received_sync_msgs_;
+ // This can't be a scoped_refptr because it needs to be released on the
+ // listener thread.
+ ReceivedSyncMsgQueue* received_sync_msgs_;
bool channel_closed_;
bool reply_deserialize_result_;