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}
This commit is contained in:
committed by
WebRTC LUCI CQ
parent
b190ca9e70
commit
9e09a1f327
@ -516,7 +516,7 @@ static ScopedJavaLocalRef<jobject> JNI_PeerConnection_GetLocalDescription(
|
||||
// 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 @@ static ScopedJavaLocalRef<jobject> JNI_PeerConnection_GetRemoteDescription(
|
||||
// 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;
|
||||
|
||||
@ -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) {
|
||||
|
||||
@ -392,26 +392,22 @@ void PeerConnectionDelegateAdapter::OnRemoveTrack(
|
||||
|
||||
- (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 {
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -178,7 +178,7 @@ class AudioDeviceDelegateImpl final : public rtc::RefCountedNonVirtual<AudioDevi
|
||||
block();
|
||||
}
|
||||
} else {
|
||||
thread->Invoke<void>(RTC_FROM_HERE, [block] {
|
||||
thread->BlockingCall([block] {
|
||||
@autoreleasepool {
|
||||
block();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user