mirror of
https://github.com/moonlight-stream/moonlight-ios.git
synced 2025-07-03 16:26:07 +00:00
Ensure double-starting or stopping DiscoveryManager and MDNSManager doesn't cause side-effects, since we do this when Home is pressed while streaming
This commit is contained in:
parent
67b08cd8b9
commit
4243bcd5d1
@ -70,6 +70,10 @@
|
||||
}
|
||||
|
||||
- (void) startDiscovery {
|
||||
if (shouldDiscover) {
|
||||
return;
|
||||
}
|
||||
|
||||
Log(LOG_I, @"Starting discovery");
|
||||
shouldDiscover = YES;
|
||||
[_mdnsMan searchForHosts];
|
||||
@ -79,6 +83,10 @@
|
||||
}
|
||||
|
||||
- (void) stopDiscovery {
|
||||
if (!shouldDiscover) {
|
||||
return;
|
||||
}
|
||||
|
||||
Log(LOG_I, @"Stopping discovery");
|
||||
shouldDiscover = NO;
|
||||
[_mdnsMan stopSearching];
|
||||
@ -87,10 +95,18 @@
|
||||
|
||||
- (void) stopDiscoveryBlocking {
|
||||
Log(LOG_I, @"Stopping discovery and waiting for workers to stop");
|
||||
shouldDiscover = NO;
|
||||
[_mdnsMan stopSearching];
|
||||
[_opQueue cancelAllOperations];
|
||||
|
||||
if (shouldDiscover) {
|
||||
shouldDiscover = NO;
|
||||
[_mdnsMan stopSearching];
|
||||
[_opQueue cancelAllOperations];
|
||||
}
|
||||
|
||||
// Ensure we always wait, just in case discovery
|
||||
// was stopped already but in an async manner that
|
||||
// left operations in progress.
|
||||
[_opQueue waitUntilAllOperationsAreFinished];
|
||||
|
||||
Log(LOG_I, @"All discovery workers stopped");
|
||||
}
|
||||
|
||||
|
@ -23,6 +23,8 @@ static NSString* NV_SERVICE_TYPE = @"_nvstream._tcp";
|
||||
|
||||
self.callback = callback;
|
||||
|
||||
scanActive = FALSE;
|
||||
|
||||
mDNSBrowser = [[NSNetServiceBrowser alloc] init];
|
||||
[mDNSBrowser setDelegate:self];
|
||||
|
||||
@ -33,12 +35,20 @@ static NSString* NV_SERVICE_TYPE = @"_nvstream._tcp";
|
||||
}
|
||||
|
||||
- (void) searchForHosts {
|
||||
if (scanActive) {
|
||||
return;
|
||||
}
|
||||
|
||||
Log(LOG_I, @"Starting mDNS discovery");
|
||||
scanActive = TRUE;
|
||||
[mDNSBrowser searchForServicesOfType:NV_SERVICE_TYPE inDomain:@""];
|
||||
}
|
||||
|
||||
- (void) stopSearching {
|
||||
if (!scanActive) {
|
||||
return;
|
||||
}
|
||||
|
||||
Log(LOG_I, @"Stopping mDNS discovery");
|
||||
scanActive = FALSE;
|
||||
[mDNSBrowser stop];
|
||||
|
Loading…
x
Reference in New Issue
Block a user