Minor tweaks to the stdlib TQ implementation.

Remove the `started_` member variable and some other minor updates to
follow conventions elsewhere in the code.

Bug: none
Change-Id: I4cbb914b39cb2e2787719b906ca937931dc3dad7
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/258360
Reviewed-by: Markus Handell <handellm@webrtc.org>
Commit-Queue: Tomas Gunnarsson <tommi@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#36677}
diff --git a/rtc_base/task_queue_stdlib.cc b/rtc_base/task_queue_stdlib.cc
index 41da285..946261e 100644
--- a/rtc_base/task_queue_stdlib.cc
+++ b/rtc_base/task_queue_stdlib.cc
@@ -68,31 +68,32 @@
   };
 
   struct NextTask {
-    bool final_task_{false};
+    bool final_task_ = false;
     std::unique_ptr<QueuedTask> run_task_;
-    int64_t sleep_time_ms_{};
+    int64_t sleep_time_ms_ = 0;
   };
 
+  static rtc::PlatformThread InitializeThread(TaskQueueStdlib* me,
+                                              absl::string_view queue_name,
+                                              rtc::ThreadPriority priority);
+
   NextTask GetNextTask();
 
   void ProcessTasks();
 
   void NotifyWake();
 
-  // Indicates if the thread has started.
-  rtc::Event started_;
-
   // Signaled whenever a new task is pending.
   rtc::Event flag_notify_;
 
   Mutex pending_lock_;
 
   // Indicates if the worker thread needs to shutdown now.
-  bool thread_should_quit_ RTC_GUARDED_BY(pending_lock_){false};
+  bool thread_should_quit_ RTC_GUARDED_BY(pending_lock_) = false;
 
   // Holds the next order to use for the next task to be
   // put into one of the pending queues.
-  OrderId thread_posting_order_ RTC_GUARDED_BY(pending_lock_){};
+  OrderId thread_posting_order_ RTC_GUARDED_BY(pending_lock_) = 0;
 
   // The list of all pending tasks that need to be processed in the
   // FIFO queue ordering on the worker thread.
@@ -117,16 +118,24 @@
 
 TaskQueueStdlib::TaskQueueStdlib(absl::string_view queue_name,
                                  rtc::ThreadPriority priority)
-    : started_(/*manual_reset=*/false, /*initially_signaled=*/false),
-      flag_notify_(/*manual_reset=*/false, /*initially_signaled=*/false),
-      thread_(rtc::PlatformThread::SpawnJoinable(
-          [this] {
-            CurrentTaskQueueSetter set_current(this);
-            ProcessTasks();
-          },
-          queue_name,
-          rtc::ThreadAttributes().SetPriority(priority))) {
-  started_.Wait(rtc::Event::kForever);
+    : flag_notify_(/*manual_reset=*/false, /*initially_signaled=*/false),
+      thread_(InitializeThread(this, queue_name, priority)) {}
+
+// static
+rtc::PlatformThread TaskQueueStdlib::InitializeThread(
+    TaskQueueStdlib* me,
+    absl::string_view queue_name,
+    rtc::ThreadPriority priority) {
+  rtc::Event started;
+  auto thread = rtc::PlatformThread::SpawnJoinable(
+      [&started, me] {
+        CurrentTaskQueueSetter set_current(me);
+        started.Set();
+        me->ProcessTasks();
+      },
+      queue_name, rtc::ThreadAttributes().SetPriority(priority));
+  started.Wait(rtc::Event::kForever);
+  return thread;
 }
 
 void TaskQueueStdlib::Delete() {
@@ -156,7 +165,7 @@
 
 void TaskQueueStdlib::PostDelayedTask(std::unique_ptr<QueuedTask> task,
                                       uint32_t milliseconds) {
-  auto fire_at = rtc::TimeMillis() + milliseconds;
+  const auto fire_at = rtc::TimeMillis() + milliseconds;
 
   DelayedEntryTimeout delay;
   delay.next_fire_at_ms_ = fire_at;
@@ -171,9 +180,9 @@
 }
 
 TaskQueueStdlib::NextTask TaskQueueStdlib::GetNextTask() {
-  NextTask result{};
+  NextTask result;
 
-  auto tick = rtc::TimeMillis();
+  const auto tick = rtc::TimeMillis();
 
   MutexLock lock(&pending_lock_);
 
@@ -216,8 +225,6 @@
 }
 
 void TaskQueueStdlib::ProcessTasks() {
-  started_.Set();
-
   while (true) {
     auto task = GetNextTask();
 
@@ -230,14 +237,12 @@
       if (release_ptr->Run())
         delete release_ptr;
 
-      // attempt to sleep again
+      // Attempt to run more tasks before going to sleep.
       continue;
     }
 
-    if (0 == task.sleep_time_ms_)
-      flag_notify_.Wait(rtc::Event::kForever);
-    else
-      flag_notify_.Wait(task.sleep_time_ms_);
+    flag_notify_.Wait(0 == task.sleep_time_ms_ ? rtc::Event::kForever
+                                               : task.sleep_time_ms_);
   }
 }