aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Jellyfin.Networking/Manager/NetworkManager.cs22
1 files changed, 10 insertions, 12 deletions
diff --git a/Jellyfin.Networking/Manager/NetworkManager.cs b/Jellyfin.Networking/Manager/NetworkManager.cs
index 4a32423e5..4a6a4a576 100644
--- a/Jellyfin.Networking/Manager/NetworkManager.cs
+++ b/Jellyfin.Networking/Manager/NetworkManager.cs
@@ -34,7 +34,7 @@ namespace Jellyfin.Networking.Manager
private readonly IConfigurationManager _configurationManager;
- private readonly SemaphoreSlim _networkEvent;
+ private readonly object _networkEventLock;
/// <summary>
/// Holds the published server URLs and the IPs to use them on.
@@ -86,7 +86,7 @@ namespace Jellyfin.Networking.Manager
_interfaces = new List<IPData>();
_macAddresses = new List<PhysicalAddress>();
_publishedServerUrls = new Dictionary<IPData, string>();
- _networkEvent = new SemaphoreSlim(1, 1);
+ _networkEventLock = new object();
_remoteAddressFilter = new List<IPNetwork>();
UpdateSettings(_configurationManager.GetNetworkConfiguration());
@@ -162,16 +162,15 @@ namespace Jellyfin.Networking.Manager
/// </summary>
private void HandleNetworkChange()
{
- _networkEvent.Wait();
- if (!_eventfire)
- {
- _logger.LogDebug("Network Address Change Event.");
- // As network events tend to fire one after the other only fire once every second.
- _eventfire = true;
- OnNetworkChange();
+ lock(_networkEventLock){
+ if (!_eventfire)
+ {
+ _logger.LogDebug("Network Address Change Event.");
+ // As network events tend to fire one after the other only fire once every second.
+ _eventfire = true;
+ OnNetworkChange();
+ }
}
-
- _networkEvent.Release();
}
/// <summary>
@@ -546,7 +545,6 @@ namespace Jellyfin.Networking.Manager
_configurationManager.NamedConfigurationUpdated -= ConfigurationUpdated;
NetworkChange.NetworkAddressChanged -= OnNetworkAddressChanged;
NetworkChange.NetworkAvailabilityChanged -= OnNetworkAvailabilityChanged;
- _networkEvent.Dispose();
}
_disposed = true;