From c974d5d6079636cfc0f4714b032632720fbc7d08 Mon Sep 17 00:00:00 2001 From: sangorrin Date: Wed, 26 Nov 2008 16:51:21 +0000 Subject: [PATCH] bug corrected: when the contract negotiation failed in the master it didnt signal the reply object git-svn-id: http://www.frescor.org/private/svn/frescor/fna/trunk@1441 35b4ef3e-fd22-0410-ab77-dab3279adceb --- src_frescan/frescan_bwres_threads.c | 31 ++++++++++++++++------------- 1 file changed, 17 insertions(+), 14 deletions(-) diff --git a/src_frescan/frescan_bwres_threads.c b/src_frescan/frescan_bwres_threads.c index 775d791..b72827f 100644 --- a/src_frescan/frescan_bwres_threads.c +++ b/src_frescan/frescan_bwres_threads.c @@ -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; iss_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); } /** -- 2.39.2