[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