From 7e5fa63c613a7a74ad1f2728ac1104a395b6288d Mon Sep 17 00:00:00 2001 From: emanuel Date: Mon, 14 Mar 2022 18:25:26 +0000 Subject: [PATCH] Fix coordination lock on PCM intersection logic --- src/pcm.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/src/pcm.c b/src/pcm.c index c741323..f88d8bf 100644 --- a/src/pcm.c +++ b/src/pcm.c @@ -100,7 +100,6 @@ static int pcm_check_handle_request(facilities_t* facilities, PCM_t* pcm, mc_nei pcm_rep->pcm.currentPosition.longitude = lon; asn_ulong2INTEGER(&pcm_rep->pcm.currentPosition.timestamp, now); - pthread_mutex_lock(&facilities->coordination.lock); if (coordination->chain.id) { pcm_rep->pcm.chain = calloc(1, sizeof(ChainInformation_t)); pcm_rep->pcm.chain->id = coordination->chain.id; @@ -109,7 +108,6 @@ static int pcm_check_handle_request(facilities_t* facilities, PCM_t* pcm, mc_nei memcpy(pcm_rep->pcm.chain->link.buf, coordination->chain.link, 8); pcm->pcm.chain->area.present = ChainGeoRegion_PR_circle; } - pthread_mutex_unlock(&facilities->coordination.lock); pcm_rep->pcm.maneuverContainer.present = ManeuverContainer_PR_vehicle; ManeuverVehicleContainer_t* mvc = &pcm_rep->pcm.maneuverContainer.choice.vehicle; @@ -295,7 +293,6 @@ static int pcm_check_intersection_detected(facilities_t* facilities, PCM_t* pcm, pcm_req->pcm.currentPosition.longitude = lon; asn_ulong2INTEGER(&pcm_req->pcm.currentPosition.timestamp, now); - pthread_mutex_lock(&facilities->coordination.lock); if (coordination->chain.id) { pcm_req->pcm.chain = calloc(1, sizeof(ChainInformation_t)); pcm_req->pcm.chain->id = coordination->chain.id; @@ -305,7 +302,6 @@ static int pcm_check_intersection_detected(facilities_t* facilities, PCM_t* pcm, pcm->pcm.chain->area.present = ChainGeoRegion_PR_circle; } - pthread_mutex_unlock(&facilities->coordination.lock); pcm_req->pcm.maneuverContainer.present = ManeuverContainer_PR_vehicle; ManeuverVehicleContainer_t* mvc = &pcm_req->pcm.maneuverContainer.choice.vehicle; @@ -398,6 +394,7 @@ static int pcm_check_intersection_detected(facilities_t* facilities, PCM_t* pcm, goto cleanup; } + syslog_debug("QUEUE SEND to APP"); it2s_tender_queue_send(facilities->tx_queue, buf, enc.encoded+1, ITSS_APPLICATIONS, bpr->id, "FI.message"); if (facilities->logging.recorder) {