Ack.

Thanks,
Ramesh.

On 8/26/2015 2:10 PM, [email protected] wrote:
>   osaf/libs/core/mds/mds_c_sndrcv.c |  40 
> +-------------------------------------
>   1 files changed, 2 insertions(+), 38 deletions(-)
>
>
> Made  centralized locks & unlock  wherever possible,
> for better debugging mds code and to reduces scope of locks & unlock code 
> errors
>
> diff --git a/osaf/libs/core/mds/mds_c_sndrcv.c 
> b/osaf/libs/core/mds/mds_c_sndrcv.c
> --- a/osaf/libs/core/mds/mds_c_sndrcv.c
> +++ b/osaf/libs/core/mds/mds_c_sndrcv.c
> @@ -1804,7 +1804,6 @@ static uint32_t mds_subtn_tbl_add_disc_q
>   
>       /* Now wait till the timeout or an subscription result will come */
>   
> -     osaf_mutex_unlock_ordie(&gl_mds_library_mutex);
>   
>       switch (req->i_sendtype) {
>       case MDS_SENDTYPE_SND:
> @@ -1888,7 +1887,6 @@ static uint32_t mds_subtn_tbl_add_disc_q
>               break;
>       }
>   
> -     osaf_mutex_lock_ordie(&gl_mds_library_mutex);
>   
>       if (NCSCC_RC_SUCCESS != mds_check_for_mds_existence(&add_ptr->sel_obj, 
> env_hdl, fr_svc_id, req->i_to_svc)) {
>               m_MDS_LOG_ERR("MDS_SND_RCV: MDS entry doesnt exist\n");
> @@ -2465,9 +2463,7 @@ static uint32_t mcm_pvt_normal_svc_sndrs
>                    get_svc_names(fr_svc_id), fr_svc_id, 
> get_svc_names(to_svc_id), to_svc_id, to_dest);
>               return status;
>       } else {
> -             osaf_mutex_unlock_ordie(&gl_mds_library_mutex);
>               if (NCSCC_RC_SUCCESS != mds_mcm_time_wait(&sync_queue->sel_obj, 
> req->info.sndrsp.i_time_to_wait)) {
> -                     osaf_mutex_lock_ordie(&gl_mds_library_mutex);
>                       /* This is for response for local dest */
>                       if (sync_queue->status == NCSCC_RC_SUCCESS) {
>                               /* sucess case */
> @@ -2488,7 +2484,6 @@ static uint32_t mcm_pvt_normal_svc_sndrs
>                       mcm_pvt_del_sync_send_entry((MDS_PWE_HDL)env_hdl, 
> fr_svc_id, xch_id, req->i_sendtype, 0);
>                       return NCSCC_RC_REQ_TIMOUT;
>               } else {
> -                     osaf_mutex_lock_ordie(&gl_mds_library_mutex);
>   
>                       if (NCSCC_RC_SUCCESS != 
> mds_check_for_mds_existence(&sync_queue->sel_obj, env_hdl, fr_svc_id, 
> to_svc_id)) {
>                               m_MDS_LOG_INFO("MDS_SND_RCV: MDS entry doesnt 
> exist\n");
> @@ -2579,10 +2574,12 @@ static uint32_t mds_await_active_tbl_del
>   
>   static uint32_t mds_mcm_time_wait(NCS_SEL_OBJ *sel_obj, uint32_t time_val)
>   {
> +     osaf_mutex_unlock_ordie(&gl_mds_library_mutex);
>       /* Now wait for the response to come */
>       int count = osaf_poll_one_fd(sel_obj->rmv_obj,
>               time_val == 0 ? -1 : (time_val * 10));
>   
> +     osaf_mutex_lock_ordie(&gl_mds_library_mutex);
>       if ((count == 0) || (count == -1)) {
>               /* Both for Timeout and Error Case */
>               m_MDS_LOG_ERR("MDS_SND_RCV: Timeout or Error occured\n");
> @@ -2819,10 +2816,8 @@ static uint32_t mcm_pvt_normal_svc_sndra
>               m_MDS_ERR_PRINT_ANCHOR(msg_dest_adest);
>               return status;
>       } else {
> -             osaf_mutex_unlock_ordie(&gl_mds_library_mutex);
>   
>               if (NCSCC_RC_SUCCESS != mds_mcm_time_wait(&sync_queue->sel_obj, 
> req->info.sndrack.i_time_to_wait)) {
> -                     osaf_mutex_lock_ordie(&gl_mds_library_mutex);
>                       if (sync_queue->status == NCSCC_RC_SUCCESS) {
>                               /* for local case */
>                               /* sucess case */
> @@ -2841,7 +2836,6 @@ static uint32_t mcm_pvt_normal_svc_sndra
>                                                   msg_dest_adest);
>                       return NCSCC_RC_REQ_TIMOUT;
>               } else {
> -                     osaf_mutex_lock_ordie(&gl_mds_library_mutex);
>   
>                       if (NCSCC_RC_SUCCESS != 
> mds_check_for_mds_existence(&sync_queue->sel_obj, env_hdl, fr_svc_id, 
> to_svc_id)) {
>                               m_MDS_LOG_ERR("MDS_SND_RCV: MDS entry doesnt 
> exist\n");
> @@ -3057,9 +3051,7 @@ static uint32_t mcm_pvt_normal_svc_sndac
>               m_MDS_ERR_PRINT_ADEST(to_dest);
>               return status;
>       } else {
> -             osaf_mutex_unlock_ordie(&gl_mds_library_mutex);
>               if (NCSCC_RC_SUCCESS != mds_mcm_time_wait(&sync_queue->sel_obj, 
> req->info.sndack.i_time_to_wait)) {
> -                     osaf_mutex_lock_ordie(&gl_mds_library_mutex);
>                       if (sync_queue->status == NCSCC_RC_SUCCESS) {
>                               /* sucess case */
>                               
> mcm_pvt_del_sync_send_entry((MDS_PWE_HDL)env_hdl, fr_svc_id, xch_id, 
> req->i_sendtype,
> @@ -3076,7 +3068,6 @@ static uint32_t mcm_pvt_normal_svc_sndac
>                       mcm_pvt_del_sync_send_entry((MDS_PWE_HDL)env_hdl, 
> fr_svc_id, xch_id, req->i_sendtype, 0);
>                       return NCSCC_RC_REQ_TIMOUT;
>               } else {
> -                     osaf_mutex_lock_ordie(&gl_mds_library_mutex);
>                       if (NCSCC_RC_SUCCESS != 
> mds_check_for_mds_existence(&sync_queue->sel_obj, env_hdl, fr_svc_id, 
> to_svc_id)) {
>                               m_MDS_LOG_ERR("MDS_SND_RCV: MDS entry doesnt 
> exist\n");
>                               return NCSCC_RC_FAILURE;
> @@ -3271,9 +3262,7 @@ static uint32_t mcm_pvt_red_svc_sndrsp(M
>               m_MDS_ERR_PRINT_ANCHOR(anchor);
>               return status;
>       } else {
> -             osaf_mutex_unlock_ordie(&gl_mds_library_mutex);
>               if (NCSCC_RC_SUCCESS != mds_mcm_time_wait(&sync_queue->sel_obj, 
> req->info.redrsp.i_time_to_wait)) {
> -                     osaf_mutex_lock_ordie(&gl_mds_library_mutex);
>                       if (sync_queue->status == NCSCC_RC_SUCCESS) {
>                               /* sucess case */
>                               req->info.redrsp.o_rsp = sync_queue->sent_msg;
> @@ -3294,7 +3283,6 @@ static uint32_t mcm_pvt_red_svc_sndrsp(M
>                       mcm_pvt_del_sync_send_entry((MDS_PWE_HDL)env_hdl, 
> fr_svc_id, xch_id, req->i_sendtype, 0);
>                       return NCSCC_RC_REQ_TIMOUT;
>               } else {
> -                     osaf_mutex_lock_ordie(&gl_mds_library_mutex);
>                       if (NCSCC_RC_SUCCESS != 
> mds_check_for_mds_existence(&sync_queue->sel_obj, env_hdl, fr_svc_id, 
> to_svc_id)) {
>                               m_MDS_LOG_ERR("MDS_SND_RCV: MDS entry doesnt 
> exist\n");
>                               return NCSCC_RC_FAILURE;
> @@ -3417,9 +3405,7 @@ static uint32_t mcm_pvt_red_svc_sndrack(
>               m_MDS_ERR_PRINT_ANCHOR(anchor);
>               return status;
>       } else {
> -             osaf_mutex_unlock_ordie(&gl_mds_library_mutex);
>               if (NCSCC_RC_SUCCESS != mds_mcm_time_wait(&sync_queue->sel_obj, 
> req->info.redrack.i_time_to_wait)) {
> -                     osaf_mutex_lock_ordie(&gl_mds_library_mutex);
>                       if (sync_queue->status == NCSCC_RC_SUCCESS) {
>                               /* sucess case */
>                               
> mcm_pvt_del_sync_send_entry((MDS_PWE_HDL)env_hdl, fr_svc_id, xch_id, 
> req->i_sendtype,
> @@ -3437,7 +3423,6 @@ static uint32_t mcm_pvt_red_svc_sndrack(
>                                                   msg_dest_adest);
>                       return NCSCC_RC_REQ_TIMOUT;
>               } else {
> -                     osaf_mutex_lock_ordie(&gl_mds_library_mutex);
>                       if (NCSCC_RC_SUCCESS != 
> mds_check_for_mds_existence(&sync_queue->sel_obj, env_hdl, fr_svc_id, 
> to_svc_id)) {
>                               m_MDS_LOG_ERR("MDS_SND_RCV: MDS entry doesnt 
> exist\n");
>                               return NCSCC_RC_FAILURE;
> @@ -3547,9 +3532,7 @@ static uint32_t mcm_pvt_red_svc_sndack(M
>               m_MDS_ERR_PRINT_ANCHOR(anchor);
>               return status;
>       } else {
> -             osaf_mutex_unlock_ordie(&gl_mds_library_mutex);
>               if (NCSCC_RC_SUCCESS != mds_mcm_time_wait(&sync_queue->sel_obj, 
> req->info.redack.i_time_to_wait)) {
> -                     osaf_mutex_lock_ordie(&gl_mds_library_mutex);
>                       if (sync_queue->status == NCSCC_RC_SUCCESS) {
>                               /* sucess case */
>                               
> mcm_pvt_del_sync_send_entry((MDS_PWE_HDL)env_hdl, fr_svc_id, xch_id, 
> req->i_sendtype,
> @@ -3566,7 +3549,6 @@ static uint32_t mcm_pvt_red_svc_sndack(M
>                       mcm_pvt_del_sync_send_entry((MDS_PWE_HDL)env_hdl, 
> fr_svc_id, xch_id, req->i_sendtype, 0);
>                       return NCSCC_RC_REQ_TIMOUT;
>               } else {
> -                     osaf_mutex_lock_ordie(&gl_mds_library_mutex);
>                       if (NCSCC_RC_SUCCESS != 
> mds_check_for_mds_existence(&sync_queue->sel_obj, env_hdl, fr_svc_id, 
> to_svc_id)) {
>                               m_MDS_LOG_ERR("MDS_SND_RCV: MDS entry doesnt 
> exist\n");
>                               return NCSCC_RC_FAILURE;
> @@ -5125,10 +5107,8 @@ static uint32_t mcm_pvt_normal_svc_sndrs
>               mcm_pvt_del_sync_send_entry((MDS_PWE_HDL)env_hdl, fr_svc_id, 
> xch_id, req->i_sendtype, 0);
>               return ret_status;
>       } else {
> -             osaf_mutex_unlock_ordie(&gl_mds_library_mutex);
>   
>               if (NCSCC_RC_SUCCESS != mds_mcm_time_wait(&sync_queue->sel_obj, 
> req->info.sndrsp.i_time_to_wait)) {
> -                     osaf_mutex_lock_ordie(&gl_mds_library_mutex);
>                       /* This is for response for local dest */
>                       if (sync_queue->status == NCSCC_RC_SUCCESS) {
>                               /* sucess case */
> @@ -5150,7 +5130,6 @@ static uint32_t mcm_pvt_normal_svc_sndrs
>                       mcm_pvt_del_sync_send_entry((MDS_PWE_HDL)env_hdl, 
> fr_svc_id, xch_id, req->i_sendtype, 0);
>                       return NCSCC_RC_REQ_TIMOUT;
>               } else {
> -                     osaf_mutex_lock_ordie(&gl_mds_library_mutex);
>                       if (NCSCC_RC_SUCCESS != 
> mds_check_for_mds_existence(&sync_queue->sel_obj, env_hdl, fr_svc_id, 
> to_svc_id)) {
>                               m_MDS_LOG_ERR("MDS_SND_RCV: MDS entry doesnt 
> exist\n");
>                               return NCSCC_RC_FAILURE;
> @@ -5213,11 +5192,9 @@ static uint32_t mcm_pvt_normal_svc_sndac
>               mcm_pvt_del_sync_send_entry((MDS_PWE_HDL)env_hdl, fr_svc_id, 
> xch_id, req->i_sendtype, 0);
>               return ret_status;
>       } else {
> -             osaf_mutex_unlock_ordie(&gl_mds_library_mutex);
>   
>               if (NCSCC_RC_SUCCESS != mds_mcm_time_wait(&sync_queue->sel_obj, 
> req->info.sndack.i_time_to_wait)) {
>                       /* This is for response for local dest */
> -                     osaf_mutex_lock_ordie(&gl_mds_library_mutex);
>                       if (sync_queue->status == NCSCC_RC_SUCCESS) {
>                               /* sucess case */
>                               
> mcm_pvt_del_sync_send_entry((MDS_PWE_HDL)env_hdl, fr_svc_id, xch_id, 
> req->i_sendtype,
> @@ -5235,7 +5212,6 @@ static uint32_t mcm_pvt_normal_svc_sndac
>                       mcm_pvt_del_sync_send_entry((MDS_PWE_HDL)env_hdl, 
> fr_svc_id, xch_id, req->i_sendtype, 0);
>                       return NCSCC_RC_REQ_TIMOUT;
>               } else {
> -                     osaf_mutex_lock_ordie(&gl_mds_library_mutex);
>                       if (NCSCC_RC_SUCCESS != 
> mds_check_for_mds_existence(&sync_queue->sel_obj, env_hdl, fr_svc_id, 
> to_svc_id)) {
>                               m_MDS_LOG_ERR("MDS_SND_RCV: MDS entry doesnt 
> exist\n");
>                               return NCSCC_RC_FAILURE;
> @@ -5307,9 +5283,7 @@ static uint32_t mcm_pvt_normal_svc_sndra
>               mcm_pvt_del_sync_send_entry((MDS_PWE_HDL)env_hdl, fr_svc_id, 
> xch_id, req->i_sendtype, msg_dest_adest);
>               return ret_status;
>       } else {
> -             osaf_mutex_unlock_ordie(&gl_mds_library_mutex);
>               if (NCSCC_RC_SUCCESS != mds_mcm_time_wait(&sync_queue->sel_obj, 
> req->info.sndrack.i_time_to_wait)) {
> -                     osaf_mutex_lock_ordie(&gl_mds_library_mutex);
>                       if (sync_queue->status == NCSCC_RC_SUCCESS) {
>                               /* for local case */
>                               /* sucess case */
> @@ -5329,7 +5303,6 @@ static uint32_t mcm_pvt_normal_svc_sndra
>                                                   msg_dest_adest);
>                       return NCSCC_RC_REQ_TIMOUT;
>               } else {
> -                     osaf_mutex_lock_ordie(&gl_mds_library_mutex);
>                       if (NCSCC_RC_SUCCESS != 
> mds_check_for_mds_existence(&sync_queue->sel_obj, env_hdl, fr_svc_id, 
> to_svc_id)) {
>                               m_MDS_LOG_ERR("MDS_SND_RCV: MDS entry doesnt 
> exist\n");
>                               return NCSCC_RC_FAILURE;
> @@ -5435,9 +5408,7 @@ static uint32_t mcm_pvt_red_svc_sndrsp_d
>               mcm_pvt_del_sync_send_entry((MDS_PWE_HDL)env_hdl, fr_svc_id, 
> xch_id, req->i_sendtype, 0);
>               return ret_status;
>       } else {
> -             osaf_mutex_unlock_ordie(&gl_mds_library_mutex);
>               if (NCSCC_RC_SUCCESS != mds_mcm_time_wait(&sync_queue->sel_obj, 
> req->info.redrsp.i_time_to_wait)) {
> -                     osaf_mutex_lock_ordie(&gl_mds_library_mutex);
>                       if (sync_queue->status == NCSCC_RC_SUCCESS) {
>                               /* sucess case */
>                               req->info.redrsp.buff = 
> sync_queue->recvd_msg.data.buff_info.buff;
> @@ -5459,7 +5430,6 @@ static uint32_t mcm_pvt_red_svc_sndrsp_d
>                       mcm_pvt_del_sync_send_entry((MDS_PWE_HDL)env_hdl, 
> fr_svc_id, xch_id, req->i_sendtype, 0);
>                       return NCSCC_RC_REQ_TIMOUT;
>               } else {
> -                     osaf_mutex_lock_ordie(&gl_mds_library_mutex);
>                       if (NCSCC_RC_SUCCESS != 
> mds_check_for_mds_existence(&sync_queue->sel_obj, env_hdl, fr_svc_id, 
> to_svc_id)) {
>                               m_MDS_LOG_ERR("MDS_SND_RCV: MDS entry doesnt 
> exist\n");
>                               return NCSCC_RC_FAILURE;
> @@ -5535,9 +5505,7 @@ static uint32_t mcm_pvt_red_svc_sndrack_
>               mcm_pvt_del_sync_send_entry((MDS_PWE_HDL)env_hdl, fr_svc_id, 
> xch_id, req->i_sendtype, msg_dest_adest);
>               return ret_status;
>       } else {
> -             osaf_mutex_unlock_ordie(&gl_mds_library_mutex);
>               if (NCSCC_RC_SUCCESS != mds_mcm_time_wait(&sync_queue->sel_obj, 
> req->info.redrack.i_time_to_wait)) {
> -                     osaf_mutex_lock_ordie(&gl_mds_library_mutex);
>                       if (sync_queue->status == NCSCC_RC_SUCCESS) {
>                               /* sucess case */
>                               
> mcm_pvt_del_sync_send_entry((MDS_PWE_HDL)env_hdl, fr_svc_id, xch_id, 
> req->i_sendtype,
> @@ -5557,7 +5525,6 @@ static uint32_t mcm_pvt_red_svc_sndrack_
>                                                   msg_dest_adest);
>                       return NCSCC_RC_REQ_TIMOUT;
>               } else {
> -                     osaf_mutex_lock_ordie(&gl_mds_library_mutex);
>                       if (NCSCC_RC_SUCCESS != 
> mds_check_for_mds_existence(&sync_queue->sel_obj, env_hdl, fr_svc_id, 
> to_svc_id)) {
>                               m_MDS_LOG_ERR("MDS_SND_RCV: MDS entry doesnt 
> exist\n");
>                               return NCSCC_RC_FAILURE;
> @@ -5620,9 +5587,7 @@ static uint32_t mcm_pvt_red_svc_sndack_d
>               mcm_pvt_del_sync_send_entry((MDS_PWE_HDL)env_hdl, fr_svc_id, 
> xch_id, req->i_sendtype, 0);
>               return ret_status;
>       } else {
> -             osaf_mutex_unlock_ordie(&gl_mds_library_mutex);
>               if (NCSCC_RC_SUCCESS != mds_mcm_time_wait(&sync_queue->sel_obj, 
> req->info.redack.i_time_to_wait)) {
> -                     osaf_mutex_lock_ordie(&gl_mds_library_mutex);
>                       if (sync_queue->status == NCSCC_RC_SUCCESS) {
>                               /* sucess case */
>                               
> mcm_pvt_del_sync_send_entry((MDS_PWE_HDL)env_hdl, fr_svc_id, xch_id, 
> req->i_sendtype,
> @@ -5640,7 +5605,6 @@ static uint32_t mcm_pvt_red_svc_sndack_d
>                       mcm_pvt_del_sync_send_entry((MDS_PWE_HDL)env_hdl, 
> fr_svc_id, xch_id, req->i_sendtype, 0);
>                       return NCSCC_RC_REQ_TIMOUT;
>               } else {
> -                     osaf_mutex_lock_ordie(&gl_mds_library_mutex);
>                       if (NCSCC_RC_SUCCESS != 
> mds_check_for_mds_existence(&sync_queue->sel_obj, env_hdl, fr_svc_id, 
> to_svc_id)) {
>                               m_MDS_LOG_ERR("MDS_SND_RCV: MDS entry doesnt 
> exist\n");
>                               return NCSCC_RC_FAILURE;


------------------------------------------------------------------------------
_______________________________________________
Opensaf-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/opensaf-devel

Reply via email to