Add default constructor for rtc::Event

Bug: webrtc:9962
Change-Id: Icaa91e657e6881fcb1553f354c07866109a0ea68
Reviewed-on: https://webrtc-review.googlesource.com/c/109500
Commit-Queue: Niels Moller <nisse@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25535}
diff --git a/rtc_base/BUILD.gn b/rtc_base/BUILD.gn
index 2adeace..7f05dc4 100644
--- a/rtc_base/BUILD.gn
+++ b/rtc_base/BUILD.gn
@@ -263,7 +263,6 @@
 rtc_source_set("rtc_event") {
   deps = [
     ":checks",
-    ":macromagic",
   ]
 
   if (build_with_chromium) {
diff --git a/rtc_base/asyncinvoker.cc b/rtc_base/asyncinvoker.cc
index e255fb9..f0dd188 100644
--- a/rtc_base/asyncinvoker.cc
+++ b/rtc_base/asyncinvoker.cc
@@ -17,7 +17,7 @@
 
 AsyncInvoker::AsyncInvoker()
     : pending_invocations_(0),
-      invocation_complete_(new RefCountedObject<Event>(false, false)),
+      invocation_complete_(new RefCountedObject<Event>()),
       destroying_(false) {}
 
 AsyncInvoker::~AsyncInvoker() {
diff --git a/rtc_base/cancelable_periodic_task_unittest.cc b/rtc_base/cancelable_periodic_task_unittest.cc
index fe27ea7..badd6234 100644
--- a/rtc_base/cancelable_periodic_task_unittest.cc
+++ b/rtc_base/cancelable_periodic_task_unittest.cc
@@ -68,7 +68,7 @@
 }
 
 TEST(CancelablePeriodicTaskTest, CancelTaskBeforeItRuns) {
-  rtc::Event done(false, false);
+  rtc::Event done;
   MockClosure mock;
   EXPECT_CALL(mock, Call).Times(0);
   EXPECT_CALL(mock, Delete).WillOnce(Invoke([&done] { done.Set(); }));
@@ -84,7 +84,7 @@
 }
 
 TEST(CancelablePeriodicTaskTest, CancelDelayedTaskBeforeItRuns) {
-  rtc::Event done(false, false);
+  rtc::Event done;
   MockClosure mock;
   EXPECT_CALL(mock, Call).Times(0);
   EXPECT_CALL(mock, Delete).WillOnce(Invoke([&done] { done.Set(); }));
@@ -100,7 +100,7 @@
 }
 
 TEST(CancelablePeriodicTaskTest, CancelTaskAfterItRuns) {
-  rtc::Event done(false, false);
+  rtc::Event done;
   MockClosure mock;
   EXPECT_CALL(mock, Call).WillOnce(Return(100));
   EXPECT_CALL(mock, Delete).WillOnce(Invoke([&done] { done.Set(); }));
@@ -117,7 +117,7 @@
 
 TEST(CancelablePeriodicTaskTest, ZeroReturnValueRepostsTheTask) {
   NiceMock<MockClosure> closure;
-  rtc::Event done(false, false);
+  rtc::Event done;
   EXPECT_CALL(closure, Call()).WillOnce(Return(0)).WillOnce(Invoke([&done] {
     done.Set();
     return kTimeoutMs;
@@ -130,7 +130,7 @@
 
 TEST(CancelablePeriodicTaskTest, StartPeriodicTask) {
   MockFunction<int()> closure;
-  rtc::Event done(false, false);
+  rtc::Event done;
   EXPECT_CALL(closure, Call())
       .WillOnce(Return(20))
       .WillOnce(Return(20))
@@ -146,7 +146,7 @@
 
 // Validates perfect forwarding doesn't keep reference to deleted copy.
 TEST(CancelablePeriodicTaskTest, CreateWithCopyOfAClosure) {
-  rtc::Event done(false, false);
+  rtc::Event done;
   MockClosure mock;
   EXPECT_CALL(mock, Call).WillOnce(Invoke([&done] {
     done.Set();
@@ -166,7 +166,7 @@
 }
 
 TEST(CancelablePeriodicTaskTest, DeletingHandleDoesntStopTheTask) {
-  rtc::Event run(false, false);
+  rtc::Event run;
   rtc::TaskQueue task_queue("queue");
   auto task = rtc::CreateCancelablePeriodicTask(([&] {
     run.Set();
diff --git a/rtc_base/criticalsection_unittest.cc b/rtc_base/criticalsection_unittest.cc
index db4f9e7..6016f85 100644
--- a/rtc_base/criticalsection_unittest.cc
+++ b/rtc_base/criticalsection_unittest.cc
@@ -389,7 +389,7 @@
 // The test is disabled by default to avoid unecessarily loading the bots.
 TEST(CriticalSectionTest, DISABLED_Performance) {
   PerfTestThread threads[8];
-  Event event(false, false);
+  Event event;
 
   static const int kThreadRepeats = 10000000;
   static const int kExpectedCount = kThreadRepeats * arraysize(threads);
diff --git a/rtc_base/event.cc b/rtc_base/event.cc
index 6c9639b..42c22a2 100644
--- a/rtc_base/event.cc
+++ b/rtc_base/event.cc
@@ -24,6 +24,8 @@
 
 namespace rtc {
 
+Event::Event() : Event(false, false) {}
+
 #if defined(WEBRTC_WIN)
 
 Event::Event(bool manual_reset, bool initially_signaled) {
diff --git a/rtc_base/event.h b/rtc_base/event.h
index 7e61c4c..2e11002 100644
--- a/rtc_base/event.h
+++ b/rtc_base/event.h
@@ -11,7 +11,6 @@
 #ifndef RTC_BASE_EVENT_H_
 #define RTC_BASE_EVENT_H_
 
-#include "rtc_base/constructormagic.h"
 #if defined(WEBRTC_WIN)
 #include <windows.h>
 #elif defined(WEBRTC_POSIX)
@@ -26,7 +25,10 @@
  public:
   static const int kForever = -1;
 
+  Event();
   Event(bool manual_reset, bool initially_signaled);
+  Event(const Event&) = delete;
+  Event& operator=(const Event&) = delete;
   ~Event();
 
   void Set();
@@ -45,8 +47,6 @@
   const bool is_manual_reset_;
   bool event_status_;
 #endif
-
-  RTC_DISALLOW_IMPLICIT_CONSTRUCTORS(Event);
 };
 
 // This class is provided for compatibility with Chromium.
diff --git a/rtc_base/event_tracer.cc b/rtc_base/event_tracer.cc
index 201abdd..af88c9d 100644
--- a/rtc_base/event_tracer.cc
+++ b/rtc_base/event_tracer.cc
@@ -90,8 +90,7 @@
       : logging_thread_(EventTracingThreadFunc,
                         this,
                         "EventTracingThread",
-                        kLowPriority),
-        shutdown_event_(false, false) {}
+                        kLowPriority) {}
   ~EventLogger() { RTC_DCHECK(thread_checker_.CalledOnValidThread()); }
 
   void AddTraceEvent(const char* name,
diff --git a/rtc_base/event_unittest.cc b/rtc_base/event_unittest.cc
index 050619e..a65111b 100644
--- a/rtc_base/event_unittest.cc
+++ b/rtc_base/event_unittest.cc
@@ -32,7 +32,7 @@
 }
 
 TEST(EventTest, AutoReset) {
-  Event event(false, false);
+  Event event;
   ASSERT_FALSE(event.Wait(0));
 
   event.Set();
@@ -59,7 +59,7 @@
       me->reader_->Wait(Event::kForever);
     }
   }
-  Event stop_event_{false, false};
+  Event stop_event_;
   Event* writer_;
   Event* reader_;
   PlatformThread thread_;
@@ -68,7 +68,7 @@
 // These tests are disabled by default and only intended to be run manually.
 TEST(EventTest, DISABLED_PerformanceSingleThread) {
   static const int kNumIterations = 10000000;
-  Event event(false, false);
+  Event event;
   for (int i = 0; i < kNumIterations; ++i) {
     event.Set();
     event.Wait(0);
@@ -77,8 +77,8 @@
 
 TEST(EventTest, DISABLED_PerformanceMultiThread) {
   static const int kNumIterations = 10000;
-  Event read(false, false);
-  Event write(false, false);
+  Event read;
+  Event write;
   SignalerThread thread;
   thread.Start(&read, &write);
 
diff --git a/rtc_base/logging_unittest.cc b/rtc_base/logging_unittest.cc
index a475e52..4de1cf2 100644
--- a/rtc_base/logging_unittest.cc
+++ b/rtc_base/logging_unittest.cc
@@ -292,7 +292,7 @@
   static void ThreadEntry(void* p) { static_cast<LogThread*>(p)->Run(); }
 
   PlatformThread thread_;
-  Event event_{false, false};
+  Event event_;
 };
 
 // Ensure we don't crash when adding/removing streams while threads are going.
diff --git a/rtc_base/nullsocketserver.cc b/rtc_base/nullsocketserver.cc
index c890c6f..ec042dd 100644
--- a/rtc_base/nullsocketserver.cc
+++ b/rtc_base/nullsocketserver.cc
@@ -13,7 +13,7 @@
 
 namespace rtc {
 
-NullSocketServer::NullSocketServer() : event_(false, false) {}
+NullSocketServer::NullSocketServer() = default;
 NullSocketServer::~NullSocketServer() {}
 
 bool NullSocketServer::Wait(int cms, bool process_io) {
diff --git a/rtc_base/rate_limiter_unittest.cc b/rtc_base/rate_limiter_unittest.cc
index 6efea54..ac0625f 100644
--- a/rtc_base/rate_limiter_unittest.cc
+++ b/rtc_base/rate_limiter_unittest.cc
@@ -112,9 +112,7 @@
 class ThreadTask {
  public:
   explicit ThreadTask(RateLimiter* rate_limiter)
-      : rate_limiter_(rate_limiter),
-        start_signal_(false, false),
-        end_signal_(false, false) {}
+      : rate_limiter_(rate_limiter) {}
   virtual ~ThreadTask() {}
 
   void Run() {
diff --git a/rtc_base/sequenced_task_checker_unittest.cc b/rtc_base/sequenced_task_checker_unittest.cc
index 83fb14f..7b7247c 100644
--- a/rtc_base/sequenced_task_checker_unittest.cc
+++ b/rtc_base/sequenced_task_checker_unittest.cc
@@ -44,7 +44,6 @@
   CallCalledSequentiallyOnThread(bool expect_true,
                                  SequencedTaskChecker* sequenced_task_checker)
       : expect_true_(expect_true),
-        thread_has_run_event_(false, false),
         thread_(&Run, this, "call_do_stuff_on_thread"),
         sequenced_task_checker_(sequenced_task_checker) {
     thread_.Start();
@@ -78,7 +77,6 @@
   explicit DeleteSequencedCheckerOnThread(
       std::unique_ptr<SequencedTaskChecker> sequenced_task_checker)
       : thread_(&Run, this, "delete_sequenced_task_checker_on_thread"),
-        thread_has_run_event_(false, false),
         sequenced_task_checker_(std::move(sequenced_task_checker)) {
     thread_.Start();
   }
@@ -119,7 +117,7 @@
 
   static const char kQueueName[] = "MethodNotAllowedOnDifferentTq";
   TaskQueue queue(kQueueName);
-  Event done_event(false, false);
+  Event done_event;
   queue.PostTask([&sequenced_task_checker, &done_event, expect_true] {
     if (expect_true)
       EXPECT_TRUE(sequenced_task_checker->CalledSequentially());
@@ -136,7 +134,7 @@
 
   sequenced_task_checker->Detach();
 
-  Event done_event(false, false);
+  Event done_event;
   TaskQueue queue1("DetachThenCallFromDifferentTaskQueueImpl1");
   queue1.PostTask([&sequenced_task_checker, &done_event] {
     EXPECT_TRUE(sequenced_task_checker->CalledSequentially());
@@ -194,7 +192,7 @@
   sequenced_task_checker->Detach();
   static const char kQueueName[] = "DetachFromThreadAndUseOnTaskQueue";
   TaskQueue queue(kQueueName);
-  Event done_event(false, false);
+  Event done_event;
   queue.PostTask([&sequenced_task_checker, &done_event] {
     EXPECT_TRUE(sequenced_task_checker->CalledSequentially());
     done_event.Set();
@@ -204,7 +202,7 @@
 
 TEST(SequencedTaskCheckerTest, DetachFromTaskQueueAndUseOnThread) {
   TaskQueue queue("DetachFromTaskQueueAndUseOnThread");
-  Event done_event(false, false);
+  Event done_event;
   queue.PostTask([&done_event] {
     std::unique_ptr<SequencedTaskChecker> sequenced_task_checker(
         new SequencedTaskChecker());
@@ -272,7 +270,7 @@
   TestAnnotations annotations;
   static const char kQueueName[] = "TestAnnotationsOnWrongQueueDebug";
   TaskQueue queue(kQueueName);
-  Event done_event(false, false);
+  Event done_event;
   queue.PostTask([&annotations, &done_event] {
     annotations.ModifyTestVar();
     done_event.Set();
diff --git a/rtc_base/task_queue_for_test.h b/rtc_base/task_queue_for_test.h
index 70c58fb..9162e81 100644
--- a/rtc_base/task_queue_for_test.h
+++ b/rtc_base/task_queue_for_test.h
@@ -33,7 +33,7 @@
   template <class Closure>
   void SendTask(Closure* task) {
     RTC_DCHECK(!IsCurrent());
-    rtc::Event event(false, false);
+    rtc::Event event;
     PostTask(rtc::NewClosure(
         [&task]() {
           RTC_CHECK_EQ(false, static_cast<QueuedTask*>(task)->Run());
@@ -47,7 +47,7 @@
   template <class Closure>
   void SendTask(Closure&& task) {
     RTC_DCHECK(!IsCurrent());
-    rtc::Event event(false, false);
+    rtc::Event event;
     PostTask(rtc::NewClosure(std::move(task), [&event]() { event.Set(); }));
     event.Wait(rtc::Event::kForever);
   }
diff --git a/rtc_base/task_queue_unittest.cc b/rtc_base/task_queue_unittest.cc
index cedf68e..0af39a5 100644
--- a/rtc_base/task_queue_unittest.cc
+++ b/rtc_base/task_queue_unittest.cc
@@ -64,7 +64,7 @@
 
 TEST(TaskQueueTest, PostAndCheckCurrent) {
   static const char kQueueName[] = "PostAndCheckCurrent";
-  Event event(false, false);
+  Event event;
   TaskQueue queue(kQueueName);
 
   // We're not running a task, so there shouldn't be a current queue.
@@ -106,7 +106,7 @@
 
 TEST(TaskQueueTest, PostDelayedZero) {
   static const char kQueueName[] = "PostDelayedZero";
-  Event event(false, false);
+  Event event;
   TaskQueue queue(kQueueName);
 
   queue.PostDelayedTask([&event]() { event.Set(); }, 0);
@@ -115,7 +115,7 @@
 
 TEST(TaskQueueTest, PostFromQueue) {
   static const char kQueueName[] = "PostFromQueue";
-  Event event(false, false);
+  Event event;
   TaskQueue queue(kQueueName);
 
   queue.PostTask(
@@ -125,7 +125,7 @@
 
 TEST(TaskQueueTest, PostDelayed) {
   static const char kQueueName[] = "PostDelayed";
-  Event event(false, false);
+  Event event;
   TaskQueue queue(kQueueName, TaskQueue::Priority::HIGH);
 
   uint32_t start = Time();
@@ -145,7 +145,7 @@
   EnableHighResTimers high_res_scope;
 
   static const char kQueueName[] = "PostDelayedHighRes";
-  Event event(false, false);
+  Event event;
   TaskQueue queue(kQueueName, TaskQueue::Priority::HIGH);
 
   uint32_t start = Time();
@@ -165,7 +165,7 @@
 
   std::vector<std::unique_ptr<Event>> events;
   for (int i = 0; i < 100; ++i) {
-    events.push_back(std::unique_ptr<Event>(new Event(false, false)));
+    events.push_back(absl::make_unique<Event>());
     queue.PostDelayedTask(Bind(&CheckCurrent, events.back().get(), &queue), i);
   }
 
@@ -175,8 +175,8 @@
 
 TEST(TaskQueueTest, PostDelayedAfterDestruct) {
   static const char kQueueName[] = "PostDelayedAfterDestruct";
-  Event run(false, false);
-  Event deleted(false, false);
+  Event run;
+  Event deleted;
   {
     TaskQueue queue(kQueueName);
     queue.PostDelayedTask(
@@ -191,7 +191,7 @@
 TEST(TaskQueueTest, PostAndReply) {
   static const char kPostQueue[] = "PostQueue";
   static const char kReplyQueue[] = "ReplyQueue";
-  Event event(false, false);
+  Event event;
   TaskQueue post_queue(kPostQueue);
   TaskQueue reply_queue(kReplyQueue);
 
@@ -204,7 +204,7 @@
 TEST(TaskQueueTest, PostAndReuse) {
   static const char kPostQueue[] = "PostQueue";
   static const char kReplyQueue[] = "ReplyQueue";
-  Event event(false, false);
+  Event event;
   TaskQueue post_queue(kPostQueue);
   TaskQueue reply_queue(kReplyQueue);
 
@@ -251,7 +251,7 @@
 TEST(TaskQueueTest, PostAndReplyLambda) {
   static const char kPostQueue[] = "PostQueue";
   static const char kReplyQueue[] = "ReplyQueue";
-  Event event(false, false);
+  Event event;
   TaskQueue post_queue(kPostQueue);
   TaskQueue reply_queue(kReplyQueue);
 
@@ -287,7 +287,7 @@
 
   int num_copies = 0;
   int num_moves = 0;
-  Event event(false, false);
+  Event event;
 
   static const char kPostQueue[] = "PostCopyableClosure";
   TaskQueue post_queue(kPostQueue);
@@ -323,7 +323,7 @@
   };
 
   int num_moves = 0;
-  Event event(false, false);
+  Event event;
   std::unique_ptr<SomeState> state(new SomeState(&event));
 
   static const char kPostQueue[] = "PostMoveOnlyClosure";
@@ -346,8 +346,8 @@
     std::unique_ptr<SomeState> state;
   };
 
-  Event event_run(false, false);
-  Event event_cleanup(false, false);
+  Event event_run;
+  Event event_cleanup;
   std::unique_ptr<SomeState> state_run(new SomeState(&event_run));
   std::unique_ptr<SomeState> state_cleanup(new SomeState(&event_cleanup));
 
@@ -367,7 +367,7 @@
 // written in a way that makes it likely and by running with --gtest_repeat=1000
 // the bug would occur. Alas, now it should be fixed.
 TEST(TaskQueueTest, PostAndReplyDeadlock) {
-  Event event(false, false);
+  Event event;
   TaskQueue post_queue("PostQueue");
   TaskQueue reply_queue("ReplyQueue");
 
@@ -384,8 +384,8 @@
 #define MAYBE_DeleteTaskQueueAfterPostAndReply DeleteTaskQueueAfterPostAndReply
 #endif
 TEST(TaskQueueTest, MAYBE_DeleteTaskQueueAfterPostAndReply) {
-  Event task_deleted(false, false);
-  Event reply_deleted(false, false);
+  Event task_deleted;
+  Event reply_deleted;
   auto* task_queue = new TaskQueue("Queue");
 
   task_queue->PostTaskAndReply(
@@ -413,7 +413,7 @@
 TEST(TaskQueueTest, PostAndReply2) {
   static const char kQueueName[] = "PostAndReply2";
   static const char kWorkQueueName[] = "PostAndReply2_Worker";
-  Event event(false, false);
+  Event event;
   TaskQueue queue(kQueueName);
   TaskQueue work_queue(kWorkQueueName);
 
@@ -425,7 +425,7 @@
 // In situations like that, tasks will get dropped.
 TEST(TaskQueueTest, PostALot) {
   // To destruct the event after the queue has gone out of scope.
-  Event event(false, false);
+  Event event;
 
   int tasks_executed = 0;
   int tasks_cleaned_up = 0;
diff --git a/rtc_base/thread_unittest.cc b/rtc_base/thread_unittest.cc
index dc509b5..7e392af 100644
--- a/rtc_base/thread_unittest.cc
+++ b/rtc_base/thread_unittest.cc
@@ -470,9 +470,9 @@
   // Use these events to get in a state where the functor is in the middle of
   // executing, and then to wait for it to finish, ensuring the "EXPECT_FALSE"
   // is run.
-  Event functor_started(false, false);
-  Event functor_continue(false, false);
-  Event functor_finished(false, false);
+  Event functor_started;
+  Event functor_continue;
+  Event functor_finished;
 
   auto thread = Thread::CreateWithSocketServer();
   thread->Start();
@@ -507,7 +507,7 @@
 // destroyed. This shouldn't deadlock or crash; this second invocation should
 // just be ignored.
 TEST_F(AsyncInvokeTest, KillInvokerDuringExecuteWithReentrantInvoke) {
-  Event functor_started(false, false);
+  Event functor_started;
   // Flag used to verify that the recursively invoked task never actually runs.
   bool reentrant_functor_run = false;
 
diff --git a/rtc_base/timeutils_unittest.cc b/rtc_base/timeutils_unittest.cc
index 0e1949a..577efda 100644
--- a/rtc_base/timeutils_unittest.cc
+++ b/rtc_base/timeutils_unittest.cc
@@ -262,7 +262,7 @@
   worker->Start();
 
   // Post an event that won't be executed for 10 seconds.
-  Event message_handler_dispatched(false, false);
+  Event message_handler_dispatched;
   auto functor = [&message_handler_dispatched] {
     message_handler_dispatched.Set();
   };
diff --git a/rtc_base/virtualsocketserver.cc b/rtc_base/virtualsocketserver.cc
index 53dad46..7969411 100644
--- a/rtc_base/virtualsocketserver.cc
+++ b/rtc_base/virtualsocketserver.cc
@@ -525,7 +525,6 @@
 
 VirtualSocketServer::VirtualSocketServer(FakeClock* fake_clock)
     : fake_clock_(fake_clock),
-      wakeup_(/*manual_reset=*/false, /*initially_signaled=*/false),
       msg_queue_(nullptr),
       stop_on_idle_(false),
       next_ipv4_(kInitialNextIPv4),
diff --git a/rtc_base/weak_ptr_unittest.cc b/rtc_base/weak_ptr_unittest.cc
index 9541718..66f2b4d 100644
--- a/rtc_base/weak_ptr_unittest.cc
+++ b/rtc_base/weak_ptr_unittest.cc
@@ -202,7 +202,7 @@
 std::unique_ptr<T> NewObjectCreatedOnTaskQueue() {
   std::unique_ptr<T> obj;
   TaskQueue queue("NewObjectCreatedOnTaskQueue");
-  Event event(false, false);
+  Event event;
   queue.PostTask([&event, &obj] {
     obj.reset(new T());
     event.Set();
@@ -229,7 +229,7 @@
   // Create weak ptr on main thread
   WeakPtr<Target> weak_ptr = target->factory.GetWeakPtr();
   rtc::TaskQueue queue("queue");
-  rtc::Event done(false, false);
+  rtc::Event done;
   queue.PostTask([&] {
     // Dereference and invalide weak_ptr on another thread.
     EXPECT_EQ(weak_ptr.get(), target.get());