Fix coordination lock on PCM intersection logic
This commit is contained in:
parent
a25d16f6c6
commit
7e5fa63c61
|
|
@ -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) {
|
||||
|
|
|
|||
Loading…
Reference in New Issue