]> rtime.felk.cvut.cz Git - frescor/fna.git/commitdiff
bug corrected: when the contract negotiation failed in the master it didnt signal...
authorsangorrin <sangorrin@35b4ef3e-fd22-0410-ab77-dab3279adceb>
Wed, 26 Nov 2008 16:51:21 +0000 (16:51 +0000)
committersangorrin <sangorrin@35b4ef3e-fd22-0410-ab77-dab3279adceb>
Wed, 26 Nov 2008 16:51:21 +0000 (16:51 +0000)
git-svn-id: http://www.frescor.org/private/svn/frescor/fna/trunk@1441 35b4ef3e-fd22-0410-ab77-dab3279adceb

src_frescan/frescan_bwres_threads.c

index 775d791653f000c0bfcb9b59d51120ecbc29d9af..b72827f2480f158eb0ad02e1558241133da0135a 100644 (file)
@@ -276,14 +276,22 @@ static void frescan_manager_req_gn(frescan_bwres_request_data_t *req_data)
                 frescan_manager_gn_restore_scenario(scenario, req_data);
         }
 
-        if ((req_data->request_node == me) &&
-            (req_data->return_value == FRESCAN_BWRES_REQ_ACCEPTED)) {
+        if (req_data->request_node != me) {
+                DEBUG(FRESCAN_BWRES_MANAGER_ENABLE_DEBUG, "send reply\n");
+                req_data->type = FRESCAN_BWRES_REP_GN;
+
+                ret = frescan_messages_send_request(req_data);
+                assert(ret == 0);
+                return;
+        }
+
+        if (req_data->return_value == FRESCAN_BWRES_REQ_ACCEPTED) {
                 // create servers for new contracts
                 req_data->ss_new->size = req_data->contracts_to_neg->size;
                 for(i=0; i<req_data->ss_new->size; i++) {
                         vres = &frescan_data[req_data->net].scenario.
                                         vres_pool[me]
-                                                 [req_data->ss_new->ss[i]];
+                                                [req_data->ss_new->ss[i]];
 
                         server_params.budget = frsh_rel_time_to_usec(
                                         frsh_sa_time_to_rel_time(vres->old_c)) /
@@ -295,21 +303,16 @@ static void frescan_manager_req_gn(frescan_bwres_request_data_t *req_data)
 
                         // Create server
                         ret = frescan_servers_create(req_data->net,
-                                                     &server_params,
-                                                     &ss);
+                                                &server_params,
+                                                &ss);
                         assert(ret == 0);
                         assert (req_data->ss_new->ss[i] == ss);
                 }
-
-                DEBUG(FRESCAN_BWRES_MANAGER_ENABLE_DEBUG, "signal robj\n");
-                ret = frescan_bwres_robjs_signal(req_data->robj);
-                assert(ret == 0);
-        } else {
-                DEBUG(FRESCAN_BWRES_MANAGER_ENABLE_DEBUG, "send reply\n");
-                req_data->type = FRESCAN_BWRES_REP_GN;
-                ret = frescan_messages_send_request(req_data);
-                assert(ret == 0);
         }
+
+        DEBUG(FRESCAN_BWRES_MANAGER_ENABLE_DEBUG, "signal robj\n");
+        ret = frescan_bwres_robjs_signal(req_data->robj);
+        assert(ret == 0);
 }
 
 /**