Delete AsyncInvoker usage from SimulatedPacketTransport

Bug: webrtc:12339
Change-Id: Ic293f9c8791ec24025f9eac39cbc4fcf2583d3ea
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/212867
Commit-Queue: Niels Moller <nisse@webrtc.org>
Reviewed-by: Taylor <deadbeef@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33741}
diff --git a/media/BUILD.gn b/media/BUILD.gn
index eea3c9a..af59b59 100644
--- a/media/BUILD.gn
+++ b/media/BUILD.gn
@@ -647,6 +647,7 @@
           "sctp/usrsctp_transport_unittest.cc",
         ]
         deps += [
+          "../rtc_base:rtc_event",
           "../rtc_base/task_utils:pending_task_safety_flag",
           "../rtc_base/task_utils:to_queued_task",
         ]
diff --git a/media/sctp/usrsctp_transport_reliability_unittest.cc b/media/sctp/usrsctp_transport_reliability_unittest.cc
index 98f04a4..ddc8419 100644
--- a/media/sctp/usrsctp_transport_reliability_unittest.cc
+++ b/media/sctp/usrsctp_transport_reliability_unittest.cc
@@ -13,8 +13,8 @@
 
 #include "media/sctp/sctp_transport_internal.h"
 #include "media/sctp/usrsctp_transport.h"
-#include "rtc_base/async_invoker.h"
 #include "rtc_base/copy_on_write_buffer.h"
+#include "rtc_base/event.h"
 #include "rtc_base/gunit.h"
 #include "rtc_base/logging.h"
 #include "rtc_base/random.h"
@@ -54,11 +54,6 @@
 
   ~SimulatedPacketTransport() override {
     RTC_DCHECK_RUN_ON(transport_thread_);
-    auto destination = destination_.load();
-    if (destination != nullptr) {
-      invoker_.Flush(destination->transport_thread_);
-    }
-    invoker_.Flush(transport_thread_);
     destination_ = nullptr;
     SignalWritableState(this);
   }
@@ -83,15 +78,13 @@
       return 0;
     }
     rtc::CopyOnWriteBuffer buffer(data, len);
-    auto send_job = [this, flags, buffer = std::move(buffer)] {
-      auto destination = destination_.load();
-      if (destination == nullptr) {
-        return;
-      }
-      destination->SignalReadPacket(
-          destination, reinterpret_cast<const char*>(buffer.data()),
-          buffer.size(), rtc::Time(), flags);
-    };
+    auto send_task = ToQueuedTask(
+        destination->task_safety_.flag(),
+        [destination, flags, buffer = std::move(buffer)] {
+          destination->SignalReadPacket(
+              destination, reinterpret_cast<const char*>(buffer.data()),
+              buffer.size(), rtc::Time(), flags);
+        });
     // Introduce random send delay in range [0 .. 2 * avg_send_delay_millis_]
     // millis, which will also work as random packet reordering mechanism.
     uint16_t actual_send_delay = avg_send_delay_millis_;
@@ -101,12 +94,10 @@
     actual_send_delay += reorder_delay;
 
     if (actual_send_delay > 0) {
-      invoker_.AsyncInvokeDelayed<void>(RTC_FROM_HERE,
-                                        destination->transport_thread_,
-                                        std::move(send_job), actual_send_delay);
+      destination->transport_thread_->PostDelayedTask(std::move(send_task),
+                                                      actual_send_delay);
     } else {
-      invoker_.AsyncInvoke<void>(RTC_FROM_HERE, destination->transport_thread_,
-                                 std::move(send_job));
+      destination->transport_thread_->PostTask(std::move(send_task));
     }
     return 0;
   }
@@ -136,8 +127,8 @@
   const uint8_t packet_loss_percents_;
   const uint16_t avg_send_delay_millis_;
   std::atomic<SimulatedPacketTransport*> destination_ ATOMIC_VAR_INIT(nullptr);
-  rtc::AsyncInvoker invoker_;
   webrtc::Random random_;
+  webrtc::ScopedTaskSafety task_safety_;
   RTC_DISALLOW_COPY_AND_ASSIGN(SimulatedPacketTransport);
 };