diff options
| author | Bond_009 <bond.009@outlook.com> | 2022-01-22 23:36:42 +0100 |
|---|---|---|
| committer | Bond_009 <bond.009@outlook.com> | 2022-01-22 23:36:42 +0100 |
| commit | e7be01d7a5b7d2e93d8ee0fddb812c2ce048db50 (patch) | |
| tree | ab507f37a06391fbe4829586bee6e3c2e7189f17 /MediaBrowser.XbmcMetadata | |
| parent | cd675475bc5f37d4b20ed71271b17d0945b3f969 (diff) | |
Flush to disk async where possible
Diffstat (limited to 'MediaBrowser.XbmcMetadata')
| -rw-r--r-- | MediaBrowser.XbmcMetadata/EntryPoint.cs | 6 | ||||
| -rw-r--r-- | MediaBrowser.XbmcMetadata/Savers/BaseNfoSaver.cs | 15 |
2 files changed, 12 insertions, 9 deletions
diff --git a/MediaBrowser.XbmcMetadata/EntryPoint.cs b/MediaBrowser.XbmcMetadata/EntryPoint.cs index 935ff5f59..a6216ef30 100644 --- a/MediaBrowser.XbmcMetadata/EntryPoint.cs +++ b/MediaBrowser.XbmcMetadata/EntryPoint.cs @@ -47,7 +47,7 @@ namespace MediaBrowser.XbmcMetadata { if (!string.IsNullOrWhiteSpace(_config.GetNfoConfiguration().UserId)) { - SaveMetadataForItem(e.Item, ItemUpdateType.MetadataDownload); + _ = SaveMetadataForItemAsync(e.Item, ItemUpdateType.MetadataDownload); } } } @@ -58,7 +58,7 @@ namespace MediaBrowser.XbmcMetadata _userDataManager.UserDataSaved -= OnUserDataSaved; } - private void SaveMetadataForItem(BaseItem item, ItemUpdateType updateReason) + private async Task SaveMetadataForItemAsync(BaseItem item, ItemUpdateType updateReason) { if (!item.IsFileProtocol || !item.SupportsLocalMetadata) { @@ -67,7 +67,7 @@ namespace MediaBrowser.XbmcMetadata try { - _providerManager.SaveMetadata(item, updateReason, new[] { BaseNfoSaver.SaverName }); + await _providerManager.SaveMetadataAsync(item, updateReason, new[] { BaseNfoSaver.SaverName }).ConfigureAwait(false); } catch (Exception ex) { diff --git a/MediaBrowser.XbmcMetadata/Savers/BaseNfoSaver.cs b/MediaBrowser.XbmcMetadata/Savers/BaseNfoSaver.cs index d09981304..39bd87e96 100644 --- a/MediaBrowser.XbmcMetadata/Savers/BaseNfoSaver.cs +++ b/MediaBrowser.XbmcMetadata/Savers/BaseNfoSaver.cs @@ -8,6 +8,7 @@ using System.Linq; using System.Text; using System.Text.RegularExpressions; using System.Threading; +using System.Threading.Tasks; using System.Xml; using Jellyfin.Extensions; using MediaBrowser.Common.Extensions; @@ -180,7 +181,7 @@ namespace MediaBrowser.XbmcMetadata.Savers } /// <inheritdoc /> - public void Save(BaseItem item, CancellationToken cancellationToken) + public async Task SaveAsync(BaseItem item, CancellationToken cancellationToken) { var path = GetSavePath(item); @@ -192,11 +193,11 @@ namespace MediaBrowser.XbmcMetadata.Savers cancellationToken.ThrowIfCancellationRequested(); - SaveToFile(memoryStream, path); + await SaveToFileAsync(memoryStream, path).ConfigureAwait(false); } } - private void SaveToFile(Stream stream, string path) + private async Task SaveToFileAsync(Stream stream, string path) { var directory = Path.GetDirectoryName(path) ?? throw new ArgumentException($"Provided path ({path}) is not valid.", nameof(path)); Directory.CreateDirectory(directory); @@ -209,12 +210,14 @@ namespace MediaBrowser.XbmcMetadata.Savers Mode = FileMode.Create, Access = FileAccess.Write, Share = FileShare.None, - PreallocationSize = stream.Length + PreallocationSize = stream.Length, + Options = FileOptions.Asynchronous }; - using (var filestream = new FileStream(path, fileStreamOptions)) + var filestream = new FileStream(path, fileStreamOptions); + await using (filestream.ConfigureAwait(false)) { - stream.CopyTo(filestream); + await stream.CopyToAsync(filestream).ConfigureAwait(false); } if (ConfigurationManager.Configuration.SaveMetadataHidden) |
