aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/core/basetypes/MCObject.cpp
diff options
context:
space:
mode:
authorGravatar Robert Widmann <devteam.codafi@gmail.com>2016-01-18 23:41:02 -0500
committerGravatar Robert Widmann <devteam.codafi@gmail.com>2016-01-18 23:41:02 -0500
commit63e1f0471769d8a72edeafbd4e65b9d0c2763e9e (patch)
treebd602a8610c680548761a8fac3fd48025b3f9df5 /src/core/basetypes/MCObject.cpp
parente1fddae3b6edbbd33a22408f30a36704906cd30f (diff)
parentab62ae2cdddc2fda8ad667260db22617839b3593 (diff)
Merge branch 'master' of https://github.com/MailCore/mailcore2
Diffstat (limited to 'src/core/basetypes/MCObject.cpp')
-rw-r--r--src/core/basetypes/MCObject.cpp7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/core/basetypes/MCObject.cpp b/src/core/basetypes/MCObject.cpp
index bbcddb2f..6f776ef6 100644
--- a/src/core/basetypes/MCObject.cpp
+++ b/src/core/basetypes/MCObject.cpp
@@ -181,7 +181,7 @@ static void removeFromPerformHash(Object * obj, Object::Method method, void * co
keyData.method = method;
key.data = &keyData;
key.len = sizeof(keyData);
-
+
pthread_mutex_lock(&delayedPerformLock);
chash_delete(delayedPerformHash, (chashdatum *) &key, NULL);
pthread_mutex_unlock(&delayedPerformLock);
@@ -360,7 +360,9 @@ void Object::performMethodOnDispatchQueueAfterDelay(Method method, void * contex
}
dupCancelableBlock(false);
Block_release(dupCancelableBlock);
- release();
+ if (!cancelled) {
+ release();
+ }
});
}
@@ -373,6 +375,7 @@ void Object::cancelDelayedPerformMethodOnDispatchQueue(Method method, void * con
}
removeFromPerformHash(this, method, context, targetDispatchQueue);
dupCancelableBlock(true);
+ release();
}
#endif