Merge pull request #5947 from marceloduplicati/feature/remove-timeout-at-manager-level

Removing TimeoutObservingStream from backend manager
This commit is contained in:
Kenneth Skovhede
2025-02-07 13:57:09 +01:00
committed by GitHub
2 changed files with 6 additions and 10 deletions
@@ -123,16 +123,14 @@ partial class BackendManager
{
// extended to use stacked streams
using (var fs = System.IO.File.OpenWrite(dlTarget))
using (var act = new StreamUtil.TimeoutObservingStream(fs) { WriteTimeout = backend is ITimeoutExemptBackend ? Timeout.Infinite : Context.Options.ReadWriteTimeout })
using (var hasher = HashFactory.CreateHasher(Context.Options.FileHashAlgorithm))
using (var hs = new HashCalculatingStream(act, hasher))
using (var hs = new HashCalculatingStream(fs, hasher))
using (var ss = new ShaderStream(hs, true))
using (var linkedToken = CancellationTokenSource.CreateLinkedTokenSource(cancelToken, act.TimeoutToken))
{
using (var ts = new ThrottledStream(ss, 0, Context.Options.MaxDownloadPrSecond))
using (var pgs = new ProgressReportingStream(ts, pg => Context.HandleProgress(ts, pg, RemoteFilename)))
{
await streamingBackend.GetAsync(RemoteFilename, pgs, linkedToken.Token).ConfigureAwait(false);
await streamingBackend.GetAsync(RemoteFilename, pgs, cancelToken).ConfigureAwait(false);
}
ss.Flush();
retDownloadSize = ss.TotalBytesWritten;
@@ -268,12 +268,10 @@ partial class BackendManager
if (backend is IStreamingBackend streamingBackend && !Context.Options.DisableStreamingTransfers)
{
using (var fs = System.IO.File.OpenRead(LocalFilename))
using (var act = new StreamUtil.TimeoutObservingStream(fs) { ReadTimeout = backend is ITimeoutExemptBackend ? Timeout.Infinite : Context.Options.ReadWriteTimeout })
using (var ts = new ThrottledStream(act, Context.Options.MaxUploadPrSecond, 0))
using (var pgs = new ProgressReportingStream(ts, pg => Context.HandleProgress(ts, pg, RemoteFilename)))
using (var linkedToken = CancellationTokenSource.CreateLinkedTokenSource(cancelToken, act.TimeoutToken))
await streamingBackend.PutAsync(RemoteFilename, pgs, linkedToken.Token).ConfigureAwait(false);
using var fs = System.IO.File.OpenRead(LocalFilename);
using var ts = new ThrottledStream(fs, Context.Options.MaxUploadPrSecond, 0);
using var pgs = new ProgressReportingStream(ts,pg => Context.HandleProgress(ts, pg, RemoteFilename));
await streamingBackend.PutAsync(RemoteFilename, pgs, cancelToken).ConfigureAwait(false);
}
else
await backend.PutAsync(RemoteFilename, LocalFilename, cancelToken).ConfigureAwait(false);