src/server/daemon/resourcepool.c

changeset 490
d218607f5a7e
parent 463
4fd523fff13b
--- a/src/server/daemon/resourcepool.c	Sat Mar 25 17:18:51 2023 +0100
+++ b/src/server/daemon/resourcepool.c	Fri May 05 18:02:11 2023 +0200
@@ -39,7 +39,7 @@
 static CxMap *resource_pool_types;
 
 int init_resource_pools(void) {
-    resource_pool_types = cxHashMapCreate(cxDefaultAllocator, 4);
+    resource_pool_types = cxHashMapCreate(cxDefaultAllocator, CX_STORE_POINTERS, 4);
     return resource_pool_types ? 0 : 1;
 }
 
@@ -179,7 +179,7 @@
     if(resource) {
         if(request && session) {
             if(!request->resources) {
-                request->resources = cxHashMapCreate(pool_allocator(session->sn.pool), 8);
+                request->resources = cxHashMapCreate(pool_allocator(session->sn.pool), CX_STORE_POINTERS, 8);
             }
 
             if(request->resources) {
@@ -226,7 +226,7 @@
     
     if(nsapi_rq && !nsapi_rq->finished) {
         // request processing still ongoing and SAFs will be executed
-        if(!cxMapRemove(nsapi_rq->resources, cx_hash_key_str(respool->name))) {
+        if(!cxMapRemoveAndGet(nsapi_rq->resources, cx_hash_key_str(respool->name))) {
             log_ereport(LOG_FAILURE, "resourcepool_free: cannot remove resource from request: potential double free");
         }
     }

mercurial