Fixed some Coverity issues
Project: http://git-wip-us.apache.org/repos/asf/celix/repo Commit: http://git-wip-us.apache.org/repos/asf/celix/commit/64491416 Tree: http://git-wip-us.apache.org/repos/asf/celix/tree/64491416 Diff: http://git-wip-us.apache.org/repos/asf/celix/diff/64491416 Branch: refs/heads/master Commit: 64491416f2b9ea92fb22115aaae31a6649f7f61c Parents: 33644af Author: gricciardi <[email protected]> Authored: Tue Oct 3 16:19:29 2017 +0200 Committer: gricciardi <[email protected]> Committed: Tue Oct 3 16:19:29 2017 +0200 ---------------------------------------------------------------------- .../private/src/pubsub_admin_impl.c | 11 +++++------ .../pubsub_admin_zmq/private/src/pubsub_admin_impl.c | 13 ++++++------- 2 files changed, 11 insertions(+), 13 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/celix/blob/64491416/pubsub/pubsub_admin_udp_mc/private/src/pubsub_admin_impl.c ---------------------------------------------------------------------- diff --git a/pubsub/pubsub_admin_udp_mc/private/src/pubsub_admin_impl.c b/pubsub/pubsub_admin_udp_mc/private/src/pubsub_admin_impl.c index a582c22..1fbdb08 100644 --- a/pubsub/pubsub_admin_udp_mc/private/src/pubsub_admin_impl.c +++ b/pubsub/pubsub_admin_udp_mc/private/src/pubsub_admin_impl.c @@ -386,6 +386,7 @@ celix_status_t pubsubAdmin_addSubscription(pubsub_admin_pt admin,pubsub_endpoint } /* Check if we already know some publisher about this topic, otherwise let's put the subscription in the pending hashmap */ + celixThreadMutex_lock(&admin->pendingSubscriptionsLock); celixThreadMutex_lock(&admin->subscriptionsLock); celixThreadMutex_lock(&admin->localPublicationsLock); celixThreadMutex_lock(&admin->externalPublicationsLock); @@ -396,9 +397,7 @@ celix_status_t pubsubAdmin_addSubscription(pubsub_admin_pt admin,pubsub_endpoint array_list_pt ext_pub_list = (array_list_pt)hashMap_get(admin->externalPublications,scope_topic); if(factory==NULL && ext_pub_list==NULL){ //No (local or external) publishers yet for this topic - celixThreadMutex_lock(&admin->pendingSubscriptionsLock); pubsubAdmin_addSubscriptionToPendingList(admin,subEP); - celixThreadMutex_unlock(&admin->pendingSubscriptionsLock); } else{ int i; @@ -468,6 +467,7 @@ celix_status_t pubsubAdmin_addSubscription(pubsub_admin_pt admin,pubsub_endpoint celixThreadMutex_unlock(&admin->externalPublicationsLock); celixThreadMutex_unlock(&admin->localPublicationsLock); celixThreadMutex_unlock(&admin->subscriptionsLock); + celixThreadMutex_unlock(&admin->pendingSubscriptionsLock); return status; @@ -871,9 +871,11 @@ celix_status_t pubsubAdmin_serializerRemoved(void * handle, service_reference_pt celixThreadMutex_unlock(&admin->serializerListLock); celixThreadMutex_lock(&admin->usedSerializersLock); + array_list_pt topicPubList = (array_list_pt)hashMap_remove(admin->topicPublicationsPerSerializer, service); + array_list_pt topicSubList = (array_list_pt)hashMap_remove(admin->topicSubscriptionsPerSerializer, service); + celixThreadMutex_unlock(&admin->usedSerializersLock); /* Now destroy the topicPublications, but first put back the pubsub_endpoints back to the noSerializer pending list */ - array_list_pt topicPubList = (array_list_pt)hashMap_remove(admin->topicPublicationsPerSerializer, service); if(topicPubList!=NULL){ for(i=0;i<arrayList_size(topicPubList);i++){ topic_publication_pt topicPub = (topic_publication_pt)arrayList_get(topicPubList,i); @@ -926,7 +928,6 @@ celix_status_t pubsubAdmin_serializerRemoved(void * handle, service_reference_pt } /* Now destroy the topicSubscriptions, but first put back the pubsub_endpoints back to the noSerializer pending list */ - array_list_pt topicSubList = (array_list_pt)hashMap_remove(admin->topicSubscriptionsPerSerializer, service); if(topicSubList!=NULL){ for(i=0;i<arrayList_size(topicSubList);i++){ topic_subscription_pt topicSub = (topic_subscription_pt)arrayList_get(topicSubList,i); @@ -974,8 +975,6 @@ celix_status_t pubsubAdmin_serializerRemoved(void * handle, service_reference_pt arrayList_destroy(topicSubList); } - celixThreadMutex_unlock(&admin->usedSerializersLock); - printf("PSA_UDP_MC: %s serializer removed\n",serType); http://git-wip-us.apache.org/repos/asf/celix/blob/64491416/pubsub/pubsub_admin_zmq/private/src/pubsub_admin_impl.c ---------------------------------------------------------------------- diff --git a/pubsub/pubsub_admin_zmq/private/src/pubsub_admin_impl.c b/pubsub/pubsub_admin_zmq/private/src/pubsub_admin_impl.c index db3b762..29ead0c 100644 --- a/pubsub/pubsub_admin_zmq/private/src/pubsub_admin_impl.c +++ b/pubsub/pubsub_admin_zmq/private/src/pubsub_admin_impl.c @@ -387,6 +387,7 @@ celix_status_t pubsubAdmin_addSubscription(pubsub_admin_pt admin,pubsub_endpoint } /* Check if we already know some publisher about this topic, otherwise let's put the subscription in the pending hashmap */ + celixThreadMutex_lock(&admin->pendingSubscriptionsLock); celixThreadMutex_lock(&admin->subscriptionsLock); celixThreadMutex_lock(&admin->localPublicationsLock); celixThreadMutex_lock(&admin->externalPublicationsLock); @@ -397,9 +398,7 @@ celix_status_t pubsubAdmin_addSubscription(pubsub_admin_pt admin,pubsub_endpoint array_list_pt ext_pub_list = (array_list_pt)hashMap_get(admin->externalPublications,scope_topic); if(factory==NULL && ext_pub_list==NULL){ //No (local or external) publishers yet for this topic - celixThreadMutex_lock(&admin->pendingSubscriptionsLock); pubsubAdmin_addSubscriptionToPendingList(admin,subEP); - celixThreadMutex_unlock(&admin->pendingSubscriptionsLock); } else{ int i; @@ -469,6 +468,7 @@ celix_status_t pubsubAdmin_addSubscription(pubsub_admin_pt admin,pubsub_endpoint celixThreadMutex_unlock(&admin->externalPublicationsLock); celixThreadMutex_unlock(&admin->localPublicationsLock); celixThreadMutex_unlock(&admin->subscriptionsLock); + celixThreadMutex_unlock(&admin->pendingSubscriptionsLock); return status; @@ -648,8 +648,6 @@ celix_status_t pubsubAdmin_removePublication(pubsub_admin_pt admin,pubsub_endpoi } celixThreadMutex_unlock(&admin->noSerializerPendingsLock); } - - } else{ @@ -872,9 +870,11 @@ celix_status_t pubsubAdmin_serializerRemoved(void * handle, service_reference_pt celixThreadMutex_lock(&admin->usedSerializersLock); + array_list_pt topicPubList = (array_list_pt)hashMap_remove(admin->topicPublicationsPerSerializer, service); + array_list_pt topicSubList = (array_list_pt)hashMap_remove(admin->topicSubscriptionsPerSerializer, service); + celixThreadMutex_unlock(&admin->usedSerializersLock); /* Now destroy the topicPublications, but first put back the pubsub_endpoints back to the noSerializer pending list */ - array_list_pt topicPubList = (array_list_pt)hashMap_remove(admin->topicPublicationsPerSerializer, service); if(topicPubList!=NULL){ for(i=0;i<arrayList_size(topicPubList);i++){ topic_publication_pt topicPub = (topic_publication_pt)arrayList_get(topicPubList,i); @@ -927,7 +927,6 @@ celix_status_t pubsubAdmin_serializerRemoved(void * handle, service_reference_pt } /* Now destroy the topicSubscriptions, but first put back the pubsub_endpoints back to the noSerializer pending list */ - array_list_pt topicSubList = (array_list_pt)hashMap_remove(admin->topicSubscriptionsPerSerializer, service); if(topicSubList!=NULL){ for(i=0;i<arrayList_size(topicSubList);i++){ topic_subscription_pt topicSub = (topic_subscription_pt)arrayList_get(topicSubList,i); @@ -975,7 +974,7 @@ celix_status_t pubsubAdmin_serializerRemoved(void * handle, service_reference_pt arrayList_destroy(topicSubList); } - celixThreadMutex_unlock(&admin->usedSerializersLock); + printf("PSA_ZMQ: %s serializer removed\n",serType);
