You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@celix.apache.org by bp...@apache.org on 2014/12/08 19:20:31 UTC
svn commit: r1643878 -
/celix/trunk/remote_services/remote_service_admin_http/private/src/remote_service_admin_impl.c
Author: bpetri
Date: Mon Dec 8 18:20:31 2014
New Revision: 1643878
URL: http://svn.apache.org/r1643878
Log:
CELIX-192: added locking and cleanup
Modified:
celix/trunk/remote_services/remote_service_admin_http/private/src/remote_service_admin_impl.c
Modified: celix/trunk/remote_services/remote_service_admin_http/private/src/remote_service_admin_impl.c
URL: http://svn.apache.org/viewvc/celix/trunk/remote_services/remote_service_admin_http/private/src/remote_service_admin_impl.c?rev=1643878&r1=1643877&r2=1643878&view=diff
==============================================================================
--- celix/trunk/remote_services/remote_service_admin_http/private/src/remote_service_admin_impl.c (original)
+++ celix/trunk/remote_services/remote_service_admin_http/private/src/remote_service_admin_impl.c Mon Dec 8 18:20:31 2014
@@ -194,6 +194,8 @@ celix_status_t remoteServiceAdmin_create
celix_status_t remoteServiceAdmin_stop(remote_service_admin_pt admin) {
celix_status_t status = CELIX_SUCCESS;
+ celixThreadMutex_lock(&admin->exportedServicesLock);
+
hash_map_iterator_pt iter = hashMapIterator_create(admin->exportedServices);
while (hashMapIterator_hasNext(iter)) {
array_list_pt exports = hashMapIterator_nextValue(iter);
@@ -204,6 +206,7 @@ celix_status_t remoteServiceAdmin_stop(r
}
}
hashMapIterator_destroy(iter);
+ celixThreadMutex_unlock(&admin->exportedServicesLock);
celixThreadMutex_lock(&admin->importedServicesLock);
@@ -234,6 +237,9 @@ celix_status_t remoteServiceAdmin_stop(r
admin->ctx = NULL;
}
+ hashMap_destroy(admin->exportedServices, false, false);
+ hashMap_destroy(admin->importedServices, false, false);
+
logHelper_stop(admin->loghelper);
logHelper_destroy(&admin->loghelper);