diff --git a/Jellyfin.Networking/Manager/NetworkManager.cs b/Jellyfin.Networking/Manager/NetworkManager.cs
index 4a32423e5e..4a6a4a5766 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;
///
/// Holds the published server URLs and the IPs to use them on.
@@ -86,7 +86,7 @@ namespace Jellyfin.Networking.Manager
_interfaces = new List();
_macAddresses = new List();
_publishedServerUrls = new Dictionary();
- _networkEvent = new SemaphoreSlim(1, 1);
+ _networkEventLock = new object();
_remoteAddressFilter = new List();
UpdateSettings(_configurationManager.GetNetworkConfiguration());
@@ -162,16 +162,15 @@ namespace Jellyfin.Networking.Manager
///
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();
}
///
@@ -546,7 +545,6 @@ namespace Jellyfin.Networking.Manager
_configurationManager.NamedConfigurationUpdated -= ConfigurationUpdated;
NetworkChange.NetworkAddressChanged -= OnNetworkAddressChanged;
NetworkChange.NetworkAvailabilityChanged -= OnNetworkAvailabilityChanged;
- _networkEvent.Dispose();
}
_disposed = true;