Index: remoting/protocol/session.h |
diff --git a/remoting/protocol/session.h b/remoting/protocol/session.h |
index 27558d7b8da2d5e5496dcc42fd35efbc9d00df8d..86b13b47f7e9b20ce3d9e9dc6e26729dbae74128 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 clean stack, i.e. not from event handlers, when sigslot may be |
Wez
2011/11/09 02:32:22
nit: with _a_ clean stack.
Sergey Ulanov
2011/11/09 21:24:00
Done.
|
+// 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. |
Wez
2011/11/09 02:32:22
nit: after this method returns?
Sergey Ulanov
2011/11/09 21:24:00
No - callback is not expected during this call. Pr
Wez
2011/11/09 23:18:45
OK, I think it's clearer to say "from the moment t
Sergey Ulanov
2011/11/10 21:06:14
Reverted behavior of this method and this comment.
|
virtual void Close() = 0; |
private: |