Mercurial > hg > svcore
diff data/model/ReadOnlyWaveFileModel.cpp @ 1858:14747f24ad04
Use cancellable serialiser; add some more profiling points
author | Chris Cannam |
---|---|
date | Thu, 14 May 2020 16:36:48 +0100 |
parents | 73447d746db3 |
children |
line wrap: on
line diff
--- a/data/model/ReadOnlyWaveFileModel.cpp Thu May 14 16:35:39 2020 +0100 +++ b/data/model/ReadOnlyWaveFileModel.cpp Thu May 14 16:36:48 2020 +0100 @@ -54,6 +54,8 @@ m_lastDirectReadStart(0), m_lastDirectReadCount(0) { + Profiler profiler("ReadOnlyWaveFileModel::ReadOnlyWaveFileModel"); + SVDEBUG << "ReadOnlyWaveFileModel::ReadOnlyWaveFileModel: path " << m_path << ", target rate " << targetRate << endl; @@ -103,6 +105,8 @@ m_prevCompletion(0), m_exiting(false) { + Profiler profiler("ReadOnlyWaveFileModel::ReadOnlyWaveFileModel (with reader)"); + SVDEBUG << "ReadOnlyWaveFileModel::ReadOnlyWaveFileModel: path " << m_path << ", with reader" << endl; @@ -117,6 +121,8 @@ ReadOnlyWaveFileModel::~ReadOnlyWaveFileModel() { + Profiler profiler("ReadOnlyWaveFileModel::~ReadOnlyWaveFileModel"); + PlayParameterRepository::getInstance()->removePlayable (getId().untyped); @@ -653,6 +659,9 @@ sleep(1); channels = m_model.getChannelCount(); } + if (m_model.m_exiting) { + return; + } } Range *range = new Range[2 * channels]; @@ -734,7 +743,8 @@ first = false; if (m_model.m_exiting) break; if (updating) { - sleep(1); + usleep(100000); + if (m_model.m_exiting) break; } }