summaryrefslogtreecommitdiffstats
path: root/remoting
diff options
context:
space:
mode:
authorsergeyu@chromium.org <sergeyu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-11-10 01:20:40 +0000
committersergeyu@chromium.org <sergeyu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-11-10 01:20:40 +0000
commit1952565c98b3312c1f429aa60e48c9417a0564c5 (patch)
tree4edb62abb2d65b8d7ebf2c2b4859e1811530dcb6 /remoting
parenta0dc711cd2cd69bdde091126fa7d941dc7fcc1dc (diff)
downloadchromium_src-1952565c98b3312c1f429aa60e48c9417a0564c5.zip
chromium_src-1952565c98b3312c1f429aa60e48c9417a0564c5.tar.gz
chromium_src-1952565c98b3312c1f429aa60e48c9417a0564c5.tar.bz2
Fix intermittent CHECK in remoting client when shutting down.
MessageReader::~MessageReader() may CHECK because ChromotingClient may be destroyed without destroying all pending video packets. BUG=None TEST=None Review URL: http://codereview.chromium.org/8507025 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@109355 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'remoting')
-rw-r--r--remoting/client/chromoting_client.cc6
1 files changed, 6 insertions, 0 deletions
diff --git a/remoting/client/chromoting_client.cc b/remoting/client/chromoting_client.cc
index 327afa0..e50d95d3 100644
--- a/remoting/client/chromoting_client.cc
+++ b/remoting/client/chromoting_client.cc
@@ -64,6 +64,12 @@ void ChromotingClient::Stop(const base::Closure& shutdown_task) {
return;
}
+ // Drop all pending packets.
+ while(!received_packets_.empty()) {
+ received_packets_.front().done.Run();
+ received_packets_.pop_front();
+ }
+
connection_->Disconnect(base::Bind(&ChromotingClient::OnDisconnected,
base::Unretained(this), shutdown_task));
}