]> rtime.felk.cvut.cz Git - frescor/fna.git/commitdiff
locks for server functions
authorsangorrin <sangorrin@35b4ef3e-fd22-0410-ab77-dab3279adceb>
Tue, 15 Apr 2008 08:50:57 +0000 (08:50 +0000)
committersangorrin <sangorrin@35b4ef3e-fd22-0410-ab77-dab3279adceb>
Tue, 15 Apr 2008 08:50:57 +0000 (08:50 +0000)
git-svn-id: http://www.frescor.org/private/svn/frescor/fna/trunk@1110 35b4ef3e-fd22-0410-ab77-dab3279adceb

src_frescan/frescan_servers.c

index eb31bbe511e59e2441e53ca50b67d106e5c5e0e1..3d8198448f847d6273a6db55eac4a3b134cc7938 100644 (file)
@@ -66,7 +66,10 @@ int frescan_servers_create(frescan_network_t net,
         int ret, pos;
         struct sigevent evp;
 
+        FRESCAN_ACQUIRE_LOCK(&the_networks[net].lock);
         pos = freelist_alloc(&the_servers_pool_freelist[net]);
+        FRESCAN_RELEASE_LOCK(&the_networks[net].lock);
+
         if (pos == -1) {
                 ERROR("could not allocate servers\n");
                 return -1;
@@ -143,9 +146,11 @@ int frescan_servers_destroy(frescan_network_t net, frescan_ss_t id)
                 return ret;
         }
 
+        FRESCAN_ACQUIRE_LOCK(&the_networks[net].lock);
         list_del(&the_servers_pool[net][id].servers_list);
 
         ret = freelist_free(&the_servers_pool_freelist[net], id);
+        FRESCAN_RELEASE_LOCK(&the_networks[net].lock);
         if (ret != 0) {
                 ERROR("could not free server data from pool\n");
                 return ret;