rework device concurrency

This commit is contained in:
Luke Pulverenti 2016-01-26 13:18:21 -05:00
parent 17cf1f3a6d
commit 82495f9ac3

View File

@ -25,7 +25,7 @@ namespace MediaBrowser.Server.Implementations.Devices
private readonly ILogger _logger; private readonly ILogger _logger;
private readonly IFileSystem _fileSystem; private readonly IFileSystem _fileSystem;
private ConcurrentBag<DeviceInfo> _devices; private List<DeviceInfo> _devices;
public DeviceRepository(IApplicationPaths appPaths, IJsonSerializer json, ILogger logger, IFileSystem fileSystem) public DeviceRepository(IApplicationPaths appPaths, IJsonSerializer json, ILogger logger, IFileSystem fileSystem)
{ {
@ -92,19 +92,16 @@ namespace MediaBrowser.Server.Implementations.Devices
} }
public IEnumerable<DeviceInfo> GetDevices() public IEnumerable<DeviceInfo> GetDevices()
{
if (_devices == null)
{ {
lock (_syncLock) lock (_syncLock)
{ {
if (_devices == null) if (_devices == null)
{ {
_devices = new ConcurrentBag<DeviceInfo>(LoadDevices()); _devices = LoadDevices().ToList();
}
}
} }
return _devices.ToList(); return _devices.ToList();
} }
}
private IEnumerable<DeviceInfo> LoadDevices() private IEnumerable<DeviceInfo> LoadDevices()
{ {