[Kst] kdeextragear-2/kst/kst
George Staikos
staikos at kde.org
Sat Mar 13 21:48:51 CET 2004
CVS commit by staikos:
tracking locking bugs
M +11 -8 kstdataobject.cpp 1.23
M +1 -1 kstvcurve.cpp 1.28
--- kdeextragear-2/kst/kst/kstdataobject.cpp #1.22:1.23
@@ -148,14 +148,14 @@ void KstDataObject::readLock() const {
void KstDataObject::readUnlock() const {
- for (KstScalarMap::ConstIterator i = _inputScalars.begin(); i != _inputScalars.end(); ++i) {
+ for (KstVectorMap::ConstIterator i = _outputVectors.begin(); i != _outputVectors.end(); ++i) {
(*i)->readUnlock();
}
- for (KstScalarMap::ConstIterator i = _outputScalars.begin(); i != _outputScalars.end(); ++i) {
+ for (KstVectorMap::ConstIterator i = _inputVectors.begin(); i != _inputVectors.end(); ++i) {
(*i)->readUnlock();
}
- for (KstVectorMap::ConstIterator i = _inputVectors.begin(); i != _inputVectors.end(); ++i) {
+ for (KstScalarMap::ConstIterator i = _outputScalars.begin(); i != _outputScalars.end(); ++i) {
(*i)->readUnlock();
}
- for (KstVectorMap::ConstIterator i = _outputVectors.begin(); i != _outputVectors.end(); ++i) {
+ for (KstScalarMap::ConstIterator i = _inputScalars.begin(); i != _inputScalars.end(); ++i) {
(*i)->readUnlock();
}
@@ -164,4 +164,7 @@ void KstDataObject::readUnlock() const {
+// Note to self, this is nasty. Some objects may lock while others don't,
+// leading to very complex deadlocks or loss of consistency.
+// Might want to guard these with another lock yet.
void KstDataObject::writeLock() const {
KstObject::writeLock();
@@ -182,14 +185,14 @@ void KstDataObject::writeLock() const {
void KstDataObject::writeUnlock() const {
- for (KstScalarMap::ConstIterator i = _inputScalars.begin(); i != _inputScalars.end(); ++i) {
+ for (KstVectorMap::ConstIterator i = _outputVectors.begin(); i != _outputVectors.end(); ++i) {
(*i)->writeUnlock();
}
- for (KstScalarMap::ConstIterator i = _outputScalars.begin(); i != _outputScalars.end(); ++i) {
+ for (KstVectorMap::ConstIterator i = _inputVectors.begin(); i != _inputVectors.end(); ++i) {
(*i)->writeUnlock();
}
- for (KstVectorMap::ConstIterator i = _inputVectors.begin(); i != _inputVectors.end(); ++i) {
+ for (KstScalarMap::ConstIterator i = _outputScalars.begin(); i != _outputScalars.end(); ++i) {
(*i)->writeUnlock();
}
- for (KstVectorMap::ConstIterator i = _outputVectors.begin(); i != _outputVectors.end(); ++i) {
+ for (KstScalarMap::ConstIterator i = _inputScalars.begin(); i != _inputScalars.end(); ++i) {
(*i)->writeUnlock();
}
--- kdeextragear-2/kst/kst/kstvcurve.cpp #1.27:1.28
@@ -145,5 +145,5 @@ KstVCurve::~KstVCurve() {
KstObject::UpdateType KstVCurve::update(int update_counter) {
- if (KstObject::checkUpdateCounter(update_counter))
+ if (!VX || !VY || KstObject::checkUpdateCounter(update_counter))
return NO_CHANGE;
More information about the Kst
mailing list