summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libs/ardour/audiofilesource.cc3
-rw-r--r--libs/ardour/audiosource.cc7
2 files changed, 10 insertions, 0 deletions
diff --git a/libs/ardour/audiofilesource.cc b/libs/ardour/audiofilesource.cc
index a6942e678b..633292b157 100644
--- a/libs/ardour/audiofilesource.cc
+++ b/libs/ardour/audiofilesource.cc
@@ -335,6 +335,9 @@ AudioFileSource::is_empty (Session& /*s*/, string path)
int
AudioFileSource::setup_peakfile ()
{
+ if (_session.deletion_in_progress()) {
+ return 0;
+ }
if (!(_flags & NoPeakFile)) {
return initialize_peakfile (_path);
} else {
diff --git a/libs/ardour/audiosource.cc b/libs/ardour/audiosource.cc
index bfc2d9e4ab..9aea6f1e0e 100644
--- a/libs/ardour/audiosource.cc
+++ b/libs/ardour/audiosource.cc
@@ -56,6 +56,7 @@
#include "ardour/audiosource.h"
#include "ardour/rc_configuration.h"
#include "ardour/runtime_functions.h"
+#include "ardour/session.h"
#include "i18n.h"
@@ -746,6 +747,12 @@ AudioSource::build_peaks_from_scratch ()
lp.release(); // allow butler to refill buffers
+ if (_session.deletion_in_progress()) {
+ cerr << "peak file creation interrupted: " << _name << endmsg;
+ done_with_peakfile_writes (false);
+ goto out;
+ }
+
if (compute_and_write_peaks (buf.get(), current_frame, frames_read, true, false, _FPP)) {
break;
}