diff options
author | willchan@chromium.org <willchan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-10-07 23:30:57 +0000 |
---|---|---|
committer | willchan@chromium.org <willchan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-10-07 23:30:57 +0000 |
commit | 2f898c45f3ab063d84a94147eef95e2ae406a4be (patch) | |
tree | 1ec80874e3c7f5dad04fbeec79fc5c127e6cdc1f /net/spdy/spdy_session.h | |
parent | bd1523876a769c375e0a40b8cfe8c999f40e6e99 (diff) | |
download | chromium_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.h | 6 |
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_; |