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);
 


Reply via email to