diff options
author | 2016-01-18 23:41:02 -0500 | |
---|---|---|
committer | 2016-01-18 23:41:02 -0500 | |
commit | 63e1f0471769d8a72edeafbd4e65b9d0c2763e9e (patch) | |
tree | bd602a8610c680548761a8fac3fd48025b3f9df5 /src/core/basetypes/MCObject.cpp | |
parent | e1fddae3b6edbbd33a22408f30a36704906cd30f (diff) | |
parent | ab62ae2cdddc2fda8ad667260db22617839b3593 (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.cpp | 7 |
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 |