aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.XbmcMetadata
diff options
context:
space:
mode:
authorBond_009 <bond.009@outlook.com>2022-01-22 23:36:42 +0100
committerBond_009 <bond.009@outlook.com>2022-01-22 23:36:42 +0100
commite7be01d7a5b7d2e93d8ee0fddb812c2ce048db50 (patch)
treeab507f37a06391fbe4829586bee6e3c2e7189f17 /MediaBrowser.XbmcMetadata
parentcd675475bc5f37d4b20ed71271b17d0945b3f969 (diff)
Flush to disk async where possible
Diffstat (limited to 'MediaBrowser.XbmcMetadata')
-rw-r--r--MediaBrowser.XbmcMetadata/EntryPoint.cs6
-rw-r--r--MediaBrowser.XbmcMetadata/Savers/BaseNfoSaver.cs15
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)