Commit b197869b authored by Misha Shneerson's avatar Misha Shneerson Committed by Facebook Github Bot 8

Fix gcpu regression associated with 1ms tick in HHWheelTimer

Summary:
We should go back to 10ms granularity.
Because regressions -
https://www.facebook.com/groups/wfi/permalink/1107102889338325/

Reviewed By: haijunz

Differential Revision: D3616784

fbshipit-source-id: dc1d7ff5195ae836df4a334a9ac5c41164c0627b
parent 0a19e938
...@@ -496,7 +496,7 @@ class EventBase : private boost::noncopyable, ...@@ -496,7 +496,7 @@ class EventBase : private boost::noncopyable,
HHWheelTimer& timer() { HHWheelTimer& timer() {
if (!wheelTimer_) { if (!wheelTimer_) {
wheelTimer_ = HHWheelTimer::newTimer(this, std::chrono::milliseconds(1)); wheelTimer_ = HHWheelTimer::newTimer(this);
} }
return *wheelTimer_.get(); return *wheelTimer_.get();
} }
......
...@@ -135,7 +135,7 @@ TEST_F(HHWheelTimerTest, TestSchedulingWithinCallback) { ...@@ -135,7 +135,7 @@ TEST_F(HHWheelTimerTest, TestSchedulingWithinCallback) {
*/ */
TEST_F(HHWheelTimerTest, CancelTimeout) { TEST_F(HHWheelTimerTest, CancelTimeout) {
HHWheelTimer& t = eventBase.timer(); StackWheelTimer t(&eventBase, milliseconds(1));
// Create several timeouts that will all fire in 5ms. // Create several timeouts that will all fire in 5ms.
TestTimeout t5_1(&t, milliseconds(5)); TestTimeout t5_1(&t, milliseconds(5));
...@@ -350,7 +350,7 @@ TEST_F(HHWheelTimerTest, AtMostEveryN) { ...@@ -350,7 +350,7 @@ TEST_F(HHWheelTimerTest, AtMostEveryN) {
*/ */
TEST_F(HHWheelTimerTest, SlowLoop) { TEST_F(HHWheelTimerTest, SlowLoop) {
HHWheelTimer& t = eventBase.timer(); StackWheelTimer t(&eventBase, milliseconds(1));
TestTimeout t1; TestTimeout t1;
TestTimeout t2; TestTimeout t2;
...@@ -429,7 +429,7 @@ TEST_F(HHWheelTimerTest, DefaultTimeout) { ...@@ -429,7 +429,7 @@ TEST_F(HHWheelTimerTest, DefaultTimeout) {
} }
TEST_F(HHWheelTimerTest, lambda) { TEST_F(HHWheelTimerTest, lambda) {
HHWheelTimer& t = eventBase.timer(); StackWheelTimer t(&eventBase, milliseconds(1));
size_t count = 0; size_t count = 0;
t.scheduleTimeoutFn([&]{ count++; }, milliseconds(1)); t.scheduleTimeoutFn([&]{ count++; }, milliseconds(1));
eventBase.loop(); eventBase.loop();
...@@ -439,14 +439,14 @@ TEST_F(HHWheelTimerTest, lambda) { ...@@ -439,14 +439,14 @@ TEST_F(HHWheelTimerTest, lambda) {
// shouldn't crash because we swallow and log the error (you'll have to look // shouldn't crash because we swallow and log the error (you'll have to look
// at the console to confirm logging) // at the console to confirm logging)
TEST_F(HHWheelTimerTest, lambdaThrows) { TEST_F(HHWheelTimerTest, lambdaThrows) {
HHWheelTimer& t = eventBase.timer(); StackWheelTimer t(&eventBase, milliseconds(1));
t.scheduleTimeoutFn([&]{ throw std::runtime_error("expected"); }, t.scheduleTimeoutFn([&]{ throw std::runtime_error("expected"); },
milliseconds(1)); milliseconds(1));
eventBase.loop(); eventBase.loop();
} }
TEST_F(HHWheelTimerTest, cancelAll) { TEST_F(HHWheelTimerTest, cancelAll) {
HHWheelTimer& t = eventBase.timer(); StackWheelTimer t(&eventBase, milliseconds(1));
TestTimeout tt; TestTimeout tt;
t.scheduleTimeout(&tt, std::chrono::minutes(1)); t.scheduleTimeout(&tt, std::chrono::minutes(1));
EXPECT_EQ(1, t.cancelAll()); EXPECT_EQ(1, t.cancelAll());
......
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