Index: remoting/protocol/session.h |
diff --git a/remoting/protocol/session.h b/remoting/protocol/session.h |
index 27558d7b8da2d5e5496dcc42fd35efbc9d00df8d..77d4656d9b9f8e9a7d996fe598d7f82e2207dea4 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 { |
@@ -120,8 +125,7 @@ class Session : public base::NonThreadSafe { |
virtual const std::string& shared_secret() = 0; |
// Closes connection. Callbacks are guaranteed not to be called |
- // after this method returns. Must be called before the object is |
- // destroyed, unless the state is set to FAILED or CLOSED. |
+ // after this method is called. |
virtual void Close() = 0; |
private: |