Reduce how long the CSRI lock is held

Originally committed to SVN as r6699.
This commit is contained in:
Thomas Goyne 2012-04-14 03:17:22 +00:00
parent 24fde36e7f
commit 0f9289dc0f

View file

@ -83,12 +83,11 @@ CSRISubtitlesProvider::~CSRISubtitlesProvider() {
} }
void CSRISubtitlesProvider::LoadSubtitles(AssFile *subs) { void CSRISubtitlesProvider::LoadSubtitles(AssFile *subs) {
wxMutexLocker lock(csri_mutex);
// Open from memory
if (can_open_mem) { if (can_open_mem) {
std::vector<char> data; std::vector<char> data;
subs->SaveMemory(data); subs->SaveMemory(data);
wxMutexLocker lock(csri_mutex);
instance = csri_open_mem(renderer, &data[0], data.size(), NULL); instance = csri_open_mem(renderer, &data[0], data.size(), NULL);
} }
// Open from disk // Open from disk
@ -99,6 +98,8 @@ void CSRISubtitlesProvider::LoadSubtitles(AssFile *subs) {
tempfile += ".ass"; tempfile += ".ass";
} }
subs->Save(tempfile, false, false, wxSTRING_ENCODING); subs->Save(tempfile, false, false, wxSTRING_ENCODING);
wxMutexLocker lock(csri_mutex);
instance = csri_open_file(renderer, tempfile.utf8_str(), NULL); instance = csri_open_file(renderer, tempfile.utf8_str(), NULL);
} }
} }