[hamradio-commits] [gnss-sdr] 66/236: Provisional bug fix to avoid random channel state machine deadlock caused by an incorrect sequence of events
Carles Fernandez
carles_fernandez-guest at moszumanska.debian.org
Tue Apr 26 16:02:19 UTC 2016
This is an automated email from the git hooks/post-receive script.
carles_fernandez-guest pushed a commit to branch next
in repository gnss-sdr.
commit 833ca8ab8c9c2f48efe69bb20cd5f3592a7b8a08
Author: Javier Arribas <javiarribas at gmail.com>
Date: Fri Mar 4 14:08:19 2016 +0100
Provisional bug fix to avoid random channel state machine deadlock
caused by an incorrect sequence of events
---
src/core/receiver/gnss_flowgraph.cc | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/src/core/receiver/gnss_flowgraph.cc b/src/core/receiver/gnss_flowgraph.cc
index 00af053..f15398f 100644
--- a/src/core/receiver/gnss_flowgraph.cc
+++ b/src/core/receiver/gnss_flowgraph.cc
@@ -406,7 +406,11 @@ void GNSSFlowgraph::apply_action(unsigned int who, unsigned int what)
}
channels_.at(who)->set_signal(available_GNSS_signals_.front());
available_GNSS_signals_.pop_front();
-
+ //todo: This is a provisional bug fix to avoid random channel state machine deadlock caused by an incorrect sequence of events
+ // Correct sequence: start_acquisition() is triggered after the negative acquisition driven by the process_channel_messages() thread inside channel class
+ // Incorrect sequence: due to thread concurrency, some times start_acquisition is triggered BEFORE the last negative_acquisition notification, thus producing a deadlock
+ // a short delay here (5ms) apparently reduces the chances to enter in this deadlock
+ usleep(5000);
channels_.at(who)->start_acquisition();
break;
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-hamradio/gnss-sdr.git
More information about the pkg-hamradio-commits
mailing list