diff options
| author | Luke Pulverenti <luke.pulverenti@gmail.com> | 2015-09-03 21:34:57 -0400 |
|---|---|---|
| committer | Luke Pulverenti <luke.pulverenti@gmail.com> | 2015-09-03 21:34:57 -0400 |
| commit | 0b2c5fe6f44259af0b573073a26c5eb1c6b821d1 (patch) | |
| tree | 3cd7ae989327aa98b6c7135cdbefa139ef5669ed /MediaBrowser.Server.Implementations/LiveTv | |
| parent | cfd3248af7b51e308e9d3600cf2cfb8a460bf786 (diff) | |
fix scheduled task crash
Diffstat (limited to 'MediaBrowser.Server.Implementations/LiveTv')
| -rw-r--r-- | MediaBrowser.Server.Implementations/LiveTv/EmbyTV/EmbyTV.cs | 21 |
1 files changed, 14 insertions, 7 deletions
diff --git a/MediaBrowser.Server.Implementations/LiveTv/EmbyTV/EmbyTV.cs b/MediaBrowser.Server.Implementations/LiveTv/EmbyTV/EmbyTV.cs index 66ef209280..1786d14e47 100644 --- a/MediaBrowser.Server.Implementations/LiveTv/EmbyTV/EmbyTV.cs +++ b/MediaBrowser.Server.Implementations/LiveTv/EmbyTV/EmbyTV.cs @@ -618,6 +618,11 @@ namespace MediaBrowser.Server.Implementations.LiveTv.EmbyTV _logger.ErrorException("Error recording", ex); recording.Status = RecordingStatus.Error; } + finally + { + CancellationTokenSource removed; + _activeRecordings.TryRemove(timer.Id, out removed); + } recording.DateLastUpdated = DateTime.UtcNow; _recordingProvider.Update(recording); @@ -627,15 +632,17 @@ namespace MediaBrowser.Server.Implementations.LiveTv.EmbyTV OnSuccessfulRecording(recording); _timerProvider.Delete(timer); } - else + else if (DateTime.UtcNow < timer.EndDate) { - if (DateTime.UtcNow < timer.EndDate) - { - const int retryIntervalSeconds = 60; - _logger.Info("Retrying recording in {0} seconds.", retryIntervalSeconds); + const int retryIntervalSeconds = 60; + _logger.Info("Retrying recording in {0} seconds.", retryIntervalSeconds); - _timerProvider.StartTimer(timer, TimeSpan.FromSeconds(retryIntervalSeconds)); - } + _timerProvider.StartTimer(timer, TimeSpan.FromSeconds(retryIntervalSeconds)); + } + else + { + _timerProvider.Delete(timer); + _recordingProvider.Delete(recording); } } |
