Replace Thread::Invoke with Thread::BlockingCall

BlockingCall doesn't take rtc::Location parameter and thus most of the dependencies on location can be removed

Bug: webrtc:11318
Change-Id: I91a17e342dd9a9e3e2c8f7fbe267474c98a8d0e5
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/274620
Reviewed-by: Tomas Gunnarsson <tommi@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#38045}
diff --git a/sdk/android/src/jni/pc/peer_connection.cc b/sdk/android/src/jni/pc/peer_connection.cc
index 502763a..03321a5 100644
--- a/sdk/android/src/jni/pc/peer_connection.cc
+++ b/sdk/android/src/jni/pc/peer_connection.cc
@@ -516,7 +516,7 @@
   // must do this odd dance.
   std::string sdp;
   std::string type;
-  pc->signaling_thread()->Invoke<void>(RTC_FROM_HERE, [pc, &sdp, &type] {
+  pc->signaling_thread()->BlockingCall([pc, &sdp, &type] {
     const SessionDescriptionInterface* desc = pc->local_description();
     if (desc) {
       RTC_CHECK(desc->ToString(&sdp)) << "got so far: " << sdp;
@@ -535,7 +535,7 @@
   // must do this odd dance.
   std::string sdp;
   std::string type;
-  pc->signaling_thread()->Invoke<void>(RTC_FROM_HERE, [pc, &sdp, &type] {
+  pc->signaling_thread()->BlockingCall([pc, &sdp, &type] {
     const SessionDescriptionInterface* desc = pc->remote_description();
     if (desc) {
       RTC_CHECK(desc->ToString(&sdp)) << "got so far: " << sdp;
diff --git a/sdk/objc/api/peerconnection/RTCMediaStream.mm b/sdk/objc/api/peerconnection/RTCMediaStream.mm
index beb4a7a..0018dd6 100644
--- a/sdk/objc/api/peerconnection/RTCMediaStream.mm
+++ b/sdk/objc/api/peerconnection/RTCMediaStream.mm
@@ -36,16 +36,14 @@
 
 - (NSArray<RTC_OBJC_TYPE(RTCAudioTrack) *> *)audioTracks {
   if (!_signalingThread->IsCurrent()) {
-    return _signalingThread->Invoke<NSArray<RTC_OBJC_TYPE(RTCAudioTrack) *> *>(
-        RTC_FROM_HERE, [self]() { return self.audioTracks; });
+    return _signalingThread->BlockingCall([self]() { return self.audioTracks; });
   }
   return [_audioTracks copy];
 }
 
 - (NSArray<RTC_OBJC_TYPE(RTCVideoTrack) *> *)videoTracks {
   if (!_signalingThread->IsCurrent()) {
-    return _signalingThread->Invoke<NSArray<RTC_OBJC_TYPE(RTCVideoTrack) *> *>(
-        RTC_FROM_HERE, [self]() { return self.videoTracks; });
+    return _signalingThread->BlockingCall([self]() { return self.videoTracks; });
   }
   return [_videoTracks copy];
 }
@@ -56,8 +54,8 @@
 
 - (void)addAudioTrack:(RTC_OBJC_TYPE(RTCAudioTrack) *)audioTrack {
   if (!_signalingThread->IsCurrent()) {
-    return _signalingThread->Invoke<void>(
-        RTC_FROM_HERE, [audioTrack, self]() { return [self addAudioTrack:audioTrack]; });
+    return _signalingThread->BlockingCall(
+        [audioTrack, self]() { return [self addAudioTrack:audioTrack]; });
   }
   if (_nativeMediaStream->AddTrack(audioTrack.nativeAudioTrack)) {
     [_audioTracks addObject:audioTrack];
@@ -66,8 +64,8 @@
 
 - (void)addVideoTrack:(RTC_OBJC_TYPE(RTCVideoTrack) *)videoTrack {
   if (!_signalingThread->IsCurrent()) {
-    return _signalingThread->Invoke<void>(
-        RTC_FROM_HERE, [videoTrack, self]() { return [self addVideoTrack:videoTrack]; });
+    return _signalingThread->BlockingCall(
+        [videoTrack, self]() { return [self addVideoTrack:videoTrack]; });
   }
   if (_nativeMediaStream->AddTrack(videoTrack.nativeVideoTrack)) {
     [_videoTracks addObject:videoTrack];
@@ -76,8 +74,8 @@
 
 - (void)removeAudioTrack:(RTC_OBJC_TYPE(RTCAudioTrack) *)audioTrack {
   if (!_signalingThread->IsCurrent()) {
-    return _signalingThread->Invoke<void>(
-        RTC_FROM_HERE, [audioTrack, self]() { return [self removeAudioTrack:audioTrack]; });
+    return _signalingThread->BlockingCall(
+        [audioTrack, self]() { return [self removeAudioTrack:audioTrack]; });
   }
   NSUInteger index = [_audioTracks indexOfObjectIdenticalTo:audioTrack];
   if (index == NSNotFound) {
@@ -91,8 +89,8 @@
 
 - (void)removeVideoTrack:(RTC_OBJC_TYPE(RTCVideoTrack) *)videoTrack {
   if (!_signalingThread->IsCurrent()) {
-    return _signalingThread->Invoke<void>(
-        RTC_FROM_HERE, [videoTrack, self]() { return [self removeVideoTrack:videoTrack]; });
+    return _signalingThread->BlockingCall(
+        [videoTrack, self]() { return [self removeVideoTrack:videoTrack]; });
   }
   NSUInteger index = [_videoTracks indexOfObjectIdenticalTo:videoTrack];
   if (index == NSNotFound) {
diff --git a/sdk/objc/api/peerconnection/RTCPeerConnection.mm b/sdk/objc/api/peerconnection/RTCPeerConnection.mm
index f4db472..df99030 100644
--- a/sdk/objc/api/peerconnection/RTCPeerConnection.mm
+++ b/sdk/objc/api/peerconnection/RTCPeerConnection.mm
@@ -392,26 +392,22 @@
 
 - (RTC_OBJC_TYPE(RTCSessionDescription) *)localDescription {
   // It's only safe to operate on SessionDescriptionInterface on the signaling thread.
-  return _peerConnection->signaling_thread()->Invoke<RTC_OBJC_TYPE(RTCSessionDescription) *>(
-      RTC_FROM_HERE, [self] {
-        const webrtc::SessionDescriptionInterface *description =
-            _peerConnection->local_description();
-        return description ?
-            [[RTC_OBJC_TYPE(RTCSessionDescription) alloc] initWithNativeDescription:description] :
-            nil;
-      });
+  return _peerConnection->signaling_thread()->BlockingCall([self] {
+    const webrtc::SessionDescriptionInterface *description = _peerConnection->local_description();
+    return description ?
+        [[RTC_OBJC_TYPE(RTCSessionDescription) alloc] initWithNativeDescription:description] :
+        nil;
+  });
 }
 
 - (RTC_OBJC_TYPE(RTCSessionDescription) *)remoteDescription {
   // It's only safe to operate on SessionDescriptionInterface on the signaling thread.
-  return _peerConnection->signaling_thread()->Invoke<RTC_OBJC_TYPE(RTCSessionDescription) *>(
-      RTC_FROM_HERE, [self] {
-        const webrtc::SessionDescriptionInterface *description =
-            _peerConnection->remote_description();
-        return description ?
-            [[RTC_OBJC_TYPE(RTCSessionDescription) alloc] initWithNativeDescription:description] :
-            nil;
-      });
+  return _peerConnection->signaling_thread()->BlockingCall([self] {
+    const webrtc::SessionDescriptionInterface *description = _peerConnection->remote_description();
+    return description ?
+        [[RTC_OBJC_TYPE(RTCSessionDescription) alloc] initWithNativeDescription:description] :
+        nil;
+  });
 }
 
 - (RTCSignalingState)signalingState {
diff --git a/sdk/objc/api/peerconnection/RTCVideoTrack.mm b/sdk/objc/api/peerconnection/RTCVideoTrack.mm
index fb015c6..d4862e3 100644
--- a/sdk/objc/api/peerconnection/RTCVideoTrack.mm
+++ b/sdk/objc/api/peerconnection/RTCVideoTrack.mm
@@ -72,7 +72,7 @@
 
 - (void)addRenderer:(id<RTC_OBJC_TYPE(RTCVideoRenderer)>)renderer {
   if (!_workerThread->IsCurrent()) {
-    _workerThread->Invoke<void>(RTC_FROM_HERE, [renderer, self] { [self addRenderer:renderer]; });
+    _workerThread->BlockingCall([renderer, self] { [self addRenderer:renderer]; });
     return;
   }
 
@@ -93,8 +93,7 @@
 
 - (void)removeRenderer:(id<RTC_OBJC_TYPE(RTCVideoRenderer)>)renderer {
   if (!_workerThread->IsCurrent()) {
-    _workerThread->Invoke<void>(RTC_FROM_HERE,
-                                [renderer, self] { [self removeRenderer:renderer]; });
+    _workerThread->BlockingCall([renderer, self] { [self removeRenderer:renderer]; });
     return;
   }
   __block NSUInteger indexToRemove = NSNotFound;
diff --git a/sdk/objc/native/src/objc_audio_device_delegate.mm b/sdk/objc/native/src/objc_audio_device_delegate.mm
index b7bb4e4..156d632 100644
--- a/sdk/objc/native/src/objc_audio_device_delegate.mm
+++ b/sdk/objc/native/src/objc_audio_device_delegate.mm
@@ -178,7 +178,7 @@
       block();
     }
   } else {
-    thread->Invoke<void>(RTC_FROM_HERE, [block] {
+    thread->BlockingCall([block] {
       @autoreleasepool {
         block();
       }