summaryrefslogtreecommitdiffstats
path: root/remoting/protocol/session.h
diff options
context:
space:
mode:
authorsergeyu@chromium.org <sergeyu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-11-11 01:27:23 +0000
committersergeyu@chromium.org <sergeyu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-11-11 01:27:23 +0000
commita46bcef82b29d30836a0f26226e3d4aca4fa9612 (patch)
tree297ff3b78e05b2fb83971d3dee51e0d12ebcf181 /remoting/protocol/session.h
parente7cd8dc6e9199cade000dc48da230f9ada0ccf28 (diff)
downloadchromium_src-a46bcef82b29d30836a0f26226e3d4aca4fa9612.zip
chromium_src-a46bcef82b29d30836a0f26226e3d4aca4fa9612.tar.gz
chromium_src-a46bcef82b29d30836a0f26226e3d4aca4fa9612.tar.bz2
Access ChromotingHost::clients_ only on network thread.
Previously ChromotingHost was doing some work on the main thread and some on the network thread. |clients_| and some other members were accessed without lock on both of these threads. Moved most of the ChromotingHost activity to the network thread to avoid possible race conditions. BUG=96325 TEST=Chromoting works Review URL: http://codereview.chromium.org/8495024 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@109556 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'remoting/protocol/session.h')
-rw-r--r--remoting/protocol/session.h5
1 files changed, 5 insertions, 0 deletions
diff --git a/remoting/protocol/session.h b/remoting/protocol/session.h
index 27558d7..432b948 100644
--- a/remoting/protocol/session.h
+++ b/remoting/protocol/session.h
@@ -25,6 +25,11 @@ namespace protocol {
// Generic interface for Chromotocol connection used by both client and host.
// Provides access to the connection channels, but doesn't depend on the
// protocol used for each channel.
+//
+// Because libjingle's sigslot class doesn't handle deletion properly
+// while it is being invoked all Session instances must be deleted
+// with a clean stack, i.e. not from event handlers, when sigslot may
+// be present in the stack.
class Session : public base::NonThreadSafe {
public:
enum State {