give EventBase a non-explicit default constructor
authorEric Niebler <eniebler@fb.com>
Sat, 6 Jan 2018 01:31:41 +0000 (17:31 -0800)
committerFacebook Github Bot <facebook-github-bot@users.noreply.github.com>
Sat, 6 Jan 2018 01:35:01 +0000 (17:35 -0800)
Summary: Default constructors are strange and often unexpected. Refactor.

Reviewed By: yfeldblum

Differential Revision: D6667480

fbshipit-source-id: 24c456c46c846c61e28f1a88806d7c36d9192493

folly/io/async/EventBase.h

index 3399cea2dacbdcc57af56f3318efd1837b65583e..50d2aef8cd240bff0558be48c1ce7229ef2b1fa4 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright 2017 Facebook, Inc.
+ * Copyright 2017-present Facebook, Inc.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -13,7 +13,6 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-
 #pragma once
 
 #include <atomic>
@@ -199,6 +198,13 @@ class EventBase : private boost::noncopyable,
     Func function_;
   };
 
+  /**
+   * Create a new EventBase object.
+   *
+   * Same as EventBase(true), which constructs an EventBase that measures time.
+   */
+  EventBase() : EventBase(true) {}
+
   /**
    * Create a new EventBase object.
    *
@@ -208,7 +214,7 @@ class EventBase : private boost::noncopyable,
    *                              that relies on time-measurement, including:
    *                              observer, max latency and avg loop time.
    */
-  explicit EventBase(bool enableTimeMeasurement = true);
+  explicit EventBase(bool enableTimeMeasurement);
 
   /**
    * Create a new EventBase object that will use the specified libevent