mirror of
https://github.com/gnss-sdr/gnss-sdr
synced 2025-11-06 18:23:05 +00:00
Fix a bug that could cause a crash on receiver stopping
If a channel event was happening after flowgraph stop and before flowgraph disconnection, it caused a crash. This was avoided by sleeping the control thread during 500 ms after disconnection and before the block destructors were called, so the event could be processed, but this was not a robust solution.
This commit is contained in:
@@ -94,6 +94,7 @@ BeidouB1iPcpsAcquisition::BeidouB1iPcpsAcquisition(
|
||||
|
||||
void BeidouB1iPcpsAcquisition::stop_acquisition()
|
||||
{
|
||||
acquisition_->set_active(false);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -92,6 +92,7 @@ BeidouB3iPcpsAcquisition::BeidouB3iPcpsAcquisition(
|
||||
|
||||
void BeidouB3iPcpsAcquisition::stop_acquisition()
|
||||
{
|
||||
acquisition_->set_active(false);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -121,6 +121,7 @@ GalileoE1Pcps8msAmbiguousAcquisition::GalileoE1Pcps8msAmbiguousAcquisition(
|
||||
|
||||
void GalileoE1Pcps8msAmbiguousAcquisition::stop_acquisition()
|
||||
{
|
||||
acquisition_cc_->set_active(false);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -94,6 +94,7 @@ GalileoE1PcpsAmbiguousAcquisition::GalileoE1PcpsAmbiguousAcquisition(
|
||||
|
||||
void GalileoE1PcpsAmbiguousAcquisition::stop_acquisition()
|
||||
{
|
||||
acquisition_->set_active(false);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -114,6 +114,8 @@ GalileoE1PcpsCccwsrAmbiguousAcquisition::GalileoE1PcpsCccwsrAmbiguousAcquisition
|
||||
|
||||
void GalileoE1PcpsCccwsrAmbiguousAcquisition::stop_acquisition()
|
||||
{
|
||||
acquisition_cc_->set_state(0);
|
||||
acquisition_cc_->set_active(false);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -155,6 +155,8 @@ GalileoE1PcpsQuickSyncAmbiguousAcquisition::GalileoE1PcpsQuickSyncAmbiguousAcqui
|
||||
|
||||
void GalileoE1PcpsQuickSyncAmbiguousAcquisition::stop_acquisition()
|
||||
{
|
||||
acquisition_cc_->set_state(0);
|
||||
acquisition_cc_->set_active(false);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -125,6 +125,8 @@ GalileoE1PcpsTongAmbiguousAcquisition::GalileoE1PcpsTongAmbiguousAcquisition(
|
||||
|
||||
void GalileoE1PcpsTongAmbiguousAcquisition::stop_acquisition()
|
||||
{
|
||||
acquisition_cc_->set_state(0);
|
||||
acquisition_cc_->set_active(false);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -130,6 +130,8 @@ GalileoE5aNoncoherentIQAcquisitionCaf::GalileoE5aNoncoherentIQAcquisitionCaf(
|
||||
|
||||
void GalileoE5aNoncoherentIQAcquisitionCaf::stop_acquisition()
|
||||
{
|
||||
acquisition_cc_->set_state(0);
|
||||
acquisition_cc_->set_active(false);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -93,6 +93,7 @@ GalileoE5aPcpsAcquisition::GalileoE5aPcpsAcquisition(ConfigurationInterface* con
|
||||
|
||||
void GalileoE5aPcpsAcquisition::stop_acquisition()
|
||||
{
|
||||
acquisition_->set_active(false);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -94,6 +94,7 @@ GlonassL1CaPcpsAcquisition::GlonassL1CaPcpsAcquisition(
|
||||
|
||||
void GlonassL1CaPcpsAcquisition::stop_acquisition()
|
||||
{
|
||||
acquisition_->set_active(false);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -93,6 +93,7 @@ GlonassL2CaPcpsAcquisition::GlonassL2CaPcpsAcquisition(
|
||||
|
||||
void GlonassL2CaPcpsAcquisition::stop_acquisition()
|
||||
{
|
||||
acquisition_->set_active(false);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -96,6 +96,7 @@ GpsL1CaPcpsAcquisition::GpsL1CaPcpsAcquisition(
|
||||
|
||||
void GpsL1CaPcpsAcquisition::stop_acquisition()
|
||||
{
|
||||
acquisition_->set_active(false);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -100,6 +100,8 @@ GpsL1CaPcpsAcquisitionFineDoppler::GpsL1CaPcpsAcquisitionFineDoppler(
|
||||
|
||||
void GpsL1CaPcpsAcquisitionFineDoppler::stop_acquisition()
|
||||
{
|
||||
acquisition_cc_->set_state(0);
|
||||
acquisition_cc_->set_active(false);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -92,6 +92,8 @@ GpsL1CaPcpsAssistedAcquisition::GpsL1CaPcpsAssistedAcquisition(
|
||||
|
||||
void GpsL1CaPcpsAssistedAcquisition::stop_acquisition()
|
||||
{
|
||||
acquisition_cc_->set_active(false);
|
||||
acquisition_cc_->set_state(0);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -119,6 +119,8 @@ GpsL1CaPcpsOpenClAcquisition::GpsL1CaPcpsOpenClAcquisition(
|
||||
|
||||
void GpsL1CaPcpsOpenClAcquisition::stop_acquisition()
|
||||
{
|
||||
acquisition_cc_->set_active(false);
|
||||
acquisition_cc_->set_state(0);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -148,6 +148,8 @@ GpsL1CaPcpsQuickSyncAcquisition::GpsL1CaPcpsQuickSyncAcquisition(
|
||||
|
||||
void GpsL1CaPcpsQuickSyncAcquisition::stop_acquisition()
|
||||
{
|
||||
acquisition_cc_->set_state(0);
|
||||
acquisition_cc_->set_active(false);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -110,6 +110,8 @@ GpsL1CaPcpsTongAcquisition::GpsL1CaPcpsTongAcquisition(
|
||||
|
||||
void GpsL1CaPcpsTongAcquisition::stop_acquisition()
|
||||
{
|
||||
acquisition_cc_->set_state(0);
|
||||
acquisition_cc_->set_active(false);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -93,6 +93,7 @@ GpsL2MPcpsAcquisition::GpsL2MPcpsAcquisition(
|
||||
|
||||
void GpsL2MPcpsAcquisition::stop_acquisition()
|
||||
{
|
||||
acquisition_->set_active(false);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -94,6 +94,7 @@ GpsL5iPcpsAcquisition::GpsL5iPcpsAcquisition(
|
||||
|
||||
void GpsL5iPcpsAcquisition::stop_acquisition()
|
||||
{
|
||||
acquisition_->set_active(false);
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user