Mercurial > hg > match-vamp
changeset 240:d6b714113b80 subsequence
Pull out performAlignment into separate function to ensure DTW storage is freed before mutex released
author | Chris Cannam |
---|---|
date | Thu, 16 Jul 2020 13:08:10 +0100 |
parents | d61b83c8a79a |
children | d9650fdabfc1 |
files | src/SubsequenceMatchVampPlugin.cpp src/SubsequenceMatchVampPlugin.h |
diffstat | 2 files changed, 17 insertions(+), 8 deletions(-) [+] |
line wrap: on
line diff
--- a/src/SubsequenceMatchVampPlugin.cpp Thu Jul 16 13:07:46 2020 +0100 +++ b/src/SubsequenceMatchVampPlugin.cpp Thu Jul 16 13:08:10 2020 +0100 @@ -607,6 +607,22 @@ #endif } + FeatureSet returnFeatures = performAlignment(); + + if (m_serialise) { +#ifdef _WIN32 + ReleaseMutex(mutex); +#else + pthread_mutex_unlock(&mutex); +#endif + } + + return returnFeatures; +} + +SubsequenceMatchVampPlugin::FeatureSet +SubsequenceMatchVampPlugin::performAlignment() +{ featureseq_t downsampledRef = downsample(m_features[0]); cerr << "SubsequenceMatchVampPlugin: reference downsampled sequence length = " << downsampledRef.size() << endl; @@ -717,14 +733,6 @@ prevy = y; } } - - if (m_serialise) { -#ifdef _WIN32 - ReleaseMutex(mutex); -#else - pthread_mutex_unlock(&mutex); -#endif - } return returnFeatures; }
--- a/src/SubsequenceMatchVampPlugin.h Thu Jul 16 13:07:46 2020 +0100 +++ b/src/SubsequenceMatchVampPlugin.h Thu Jul 16 13:08:10 2020 +0100 @@ -93,6 +93,7 @@ std::vector<FeatureExtractor> m_featureExtractors; std::vector<featureseq_t> m_features; // unconditioned features + FeatureSet performAlignment(); featureseq_t downsample(const featureseq_t &); mutable int m_pathOutNo;