summaryrefslogtreecommitdiffstats
path: root/net/spdy/spdy_session.h
diff options
context:
space:
mode:
authorwillchan@chromium.org <willchan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-10-07 23:30:57 +0000
committerwillchan@chromium.org <willchan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-10-07 23:30:57 +0000
commit2f898c45f3ab063d84a94147eef95e2ae406a4be (patch)
tree1ec80874e3c7f5dad04fbeec79fc5c127e6cdc1f /net/spdy/spdy_session.h
parentbd1523876a769c375e0a40b8cfe8c999f40e6e99 (diff)
downloadchromium_src-2f898c45f3ab063d84a94147eef95e2ae406a4be.zip
chromium_src-2f898c45f3ab063d84a94147eef95e2ae406a4be.tar.gz
chromium_src-2f898c45f3ab063d84a94147eef95e2ae406a4be.tar.bz2
Speculative fix for SpdySettingsStorage crasher.
I've added a unit test to exercise the code, but it didn't trigger the crash. BUG=57331 TEST=none Review URL: http://codereview.chromium.org/3517012 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@61880 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'net/spdy/spdy_session.h')
-rw-r--r--net/spdy/spdy_session.h6
1 files changed, 5 insertions, 1 deletions
diff --git a/net/spdy/spdy_session.h b/net/spdy/spdy_session.h
index 8ef6543..de5f0e2 100644
--- a/net/spdy/spdy_session.h
+++ b/net/spdy/spdy_session.h
@@ -295,6 +295,10 @@ class SpdySession : public base::RefCounted<SpdySession>,
// Closes all streams. Used as part of shutdown.
void CloseAllStreams(net::Error status);
+ // Invokes a user callback for stream creation. We provide this method so it
+ // can be deferred to the MessageLoop, so we avoid re-entrancy problems.
+ void InvokeUserStreamCreationCallback(CompletionCallback* callback, int rv);
+
// Callbacks for the Spdy session.
CompletionCallbackImpl<SpdySession> read_callback_;
CompletionCallbackImpl<SpdySession> write_callback_;
@@ -311,7 +315,7 @@ class SpdySession : public base::RefCounted<SpdySession>,
// |spdy_session_pool_| owns us, therefore its lifetime must exceed ours. We
// set this to NULL after we are removed from the pool.
SpdySessionPool* spdy_session_pool_;
- SpdySettingsStorage* spdy_settings_;
+ SpdySettingsStorage* const spdy_settings_;
// The socket handle for this session.
scoped_ptr<ClientSocketHandle> connection_;