annotate base/Serialiser.cpp @ 299:576be0d0d218

* Merge transform directory from sv-match-alignment branch (the previous comment included notes for this stuff, but I missed it in the actual merge) * Fix crash when a transform fails to create an output model and the thread that created the transform then deletes its input model thinking it's no longer needed, even though the transform run thread is still using it -- fix is to wait() on the transform before returning the null output model
author Chris Cannam
date Fri, 28 Sep 2007 16:15:06 +0000
parents c022976d18e8
children be49bf95d4a5
rev   line source
Chris@297 1 /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
Chris@297 2
Chris@297 3 /*
Chris@297 4 Sonic Visualiser
Chris@297 5 An audio file viewer and annotation editor.
Chris@297 6 Centre for Digital Music, Queen Mary, University of London.
Chris@297 7 This file copyright 2007 QMUL.
Chris@297 8
Chris@297 9 This program is free software; you can redistribute it and/or
Chris@297 10 modify it under the terms of the GNU General Public License as
Chris@297 11 published by the Free Software Foundation; either version 2 of the
Chris@297 12 License, or (at your option) any later version. See the file
Chris@297 13 COPYING included with this distribution for more information.
Chris@297 14 */
Chris@297 15
Chris@297 16 #include "Serialiser.h"
Chris@297 17
Chris@297 18 QMutex
Chris@297 19 Serialiser::m_mapMutex;
Chris@297 20
Chris@297 21 std::map<QString, QMutex *>
Chris@297 22 Serialiser::m_mutexMap;
Chris@297 23
Chris@297 24 Serialiser::Serialiser(QString id) :
Chris@297 25 m_id(id)
Chris@297 26 {
Chris@297 27 m_mapMutex.lock();
Chris@297 28
Chris@297 29 if (m_mutexMap.find(m_id) == m_mutexMap.end()) {
Chris@297 30 m_mutexMap[m_id] = new QMutex;
Chris@297 31 }
Chris@297 32
Chris@297 33 m_mutexMap[m_id]->lock();
Chris@297 34 m_mapMutex.unlock();
Chris@297 35 }
Chris@297 36
Chris@297 37 Serialiser::~Serialiser()
Chris@297 38 {
Chris@297 39 m_mutexMap[m_id]->unlock();
Chris@297 40 }
Chris@297 41
Chris@297 42
Chris@297 43