Commit bc96e065 authored by sky's avatar sky Committed by Commit bot

Revert of Enable HTTP/2 to use a LIFO scheduler to schedule write. (patchset...

Revert of Enable HTTP/2 to use a LIFO scheduler to schedule write. (patchset #1 id:1 of https://codereview.chromium.org/2844963005/ )

Reason for revert:
Reverting in hopes of fixing net_unittests. Specifically NSS/ClientCertStoreTest/0.CertAuthorityFiltering . See 716630.

Original issue's description:
> Enable HTTP/2 to use a LIFO scheduler to schedule write.
>
> This CL lands server change 152524616 by yasong.
>
> BUG=488484
>
> Review-Url: https://codereview.chromium.org/2844963005
> Cr-Commit-Position: refs/heads/master@{#467971}
> Committed: https://chromium.googlesource.com/chromium/src/+/c443c00c0c9e10b8ced1064d7da18c3a9668cac2

TBR=bnc@chromium.org,yasong@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=488484

Review-Url: https://codereview.chromium.org/2849983002
Cr-Commit-Position: refs/heads/master@{#468165}
parent d58d3252
...@@ -69,7 +69,8 @@ class LifoWriteScheduler : public WriteScheduler<StreamIdType> { ...@@ -69,7 +69,8 @@ class LifoWriteScheduler : public WriteScheduler<StreamIdType> {
} }
bool ShouldYield(StreamIdType stream_id) const override { bool ShouldYield(StreamIdType stream_id) const override {
return !ready_streams_.empty() && stream_id < *ready_streams_.rbegin(); // stream_id is not necessary to be on the ready list.
return stream_id < *ready_streams_.rbegin();
} }
void MarkStreamReady(StreamIdType stream_id, bool /*add_to_front*/) override; void MarkStreamReady(StreamIdType stream_id, bool /*add_to_front*/) override;
...@@ -105,7 +106,6 @@ void LifoWriteScheduler<StreamIdType>::UnregisterStream( ...@@ -105,7 +106,6 @@ void LifoWriteScheduler<StreamIdType>::UnregisterStream(
return; return;
} }
registered_streams_.erase(stream_id); registered_streams_.erase(stream_id);
ready_streams_.erase(stream_id);
} }
template <typename StreamIdType> template <typename StreamIdType>
...@@ -161,7 +161,7 @@ void LifoWriteScheduler<StreamIdType>::MarkStreamReady(StreamIdType stream_id, ...@@ -161,7 +161,7 @@ void LifoWriteScheduler<StreamIdType>::MarkStreamReady(StreamIdType stream_id,
return; return;
} }
if (ready_streams_.find(stream_id) != ready_streams_.end()) { if (ready_streams_.find(stream_id) != ready_streams_.end()) {
VLOG(1) << "Stream already exists in the list"; SPDY_BUG << "Stream already exists in the list";
return; return;
} }
ready_streams_.insert(stream_id); ready_streams_.insert(stream_id);
...@@ -172,7 +172,7 @@ void LifoWriteScheduler<StreamIdType>::MarkStreamNotReady( ...@@ -172,7 +172,7 @@ void LifoWriteScheduler<StreamIdType>::MarkStreamNotReady(
StreamIdType stream_id) { StreamIdType stream_id) {
auto it = ready_streams_.find(stream_id); auto it = ready_streams_.find(stream_id);
if (it == ready_streams_.end()) { if (it == ready_streams_.end()) {
VLOG(1) << "Try to remove a stream that is not on list"; SPDY_BUG << "Try to remove a stream that is not on list";
return; return;
} }
ready_streams_.erase(it); ready_streams_.erase(it);
......
...@@ -61,11 +61,12 @@ TEST(LifoWriteSchedulerTest, ReadyListTest) { ...@@ -61,11 +61,12 @@ TEST(LifoWriteSchedulerTest, ReadyListTest) {
EXPECT_TRUE(lifo.HasReadyStreams()); EXPECT_TRUE(lifo.HasReadyStreams());
EXPECT_EQ((uint32_t)7, lifo.NumReadyStreams()); EXPECT_EQ((uint32_t)7, lifo.NumReadyStreams());
// Verify MarkStream(Not)Ready() can be called multiple times for the same EXPECT_SPDY_BUG(lifo.MarkStreamReady(11, true),
// stream. "Stream already exists in the list");
lifo.MarkStreamReady(11, true); EXPECT_SPDY_BUG(lifo.MarkStreamNotReady(5),
lifo.MarkStreamNotReady(5); "Try to remove a stream that is not on list");
lifo.MarkStreamNotReady(21); EXPECT_SPDY_BUG(lifo.MarkStreamNotReady(21),
"Try to remove a stream that is not on list");
EXPECT_EQ((uint32_t)17, lifo.PopNextReadyStream()); EXPECT_EQ((uint32_t)17, lifo.PopNextReadyStream());
EXPECT_EQ((uint32_t)15, std::get<0>(lifo.PopNextReadyStreamAndPrecedence())); EXPECT_EQ((uint32_t)15, std::get<0>(lifo.PopNextReadyStreamAndPrecedence()));
...@@ -80,10 +81,6 @@ TEST(LifoWriteSchedulerTest, ReadyListTest) { ...@@ -80,10 +81,6 @@ TEST(LifoWriteSchedulerTest, ReadyListTest) {
lifo.MarkStreamNotReady(7); lifo.MarkStreamNotReady(7);
EXPECT_TRUE(peer.GetReadyList()->find(7) == peer.GetReadyList()->end()); EXPECT_TRUE(peer.GetReadyList()->find(7) == peer.GetReadyList()->end());
EXPECT_EQ((uint32_t)2, lifo.NumReadyStreams()); EXPECT_EQ((uint32_t)2, lifo.NumReadyStreams());
lifo.MarkStreamNotReady(9);
lifo.MarkStreamNotReady(11);
EXPECT_FALSE(lifo.ShouldYield(1));
} }
// Test add and remove from registered list. // Test add and remove from registered list.
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment